How can change the window title position xaml

岁酱吖の 提交于 2019-12-12 08:18:57

问题


Is it possible to change the position of the title in the window? By default it is placed at the left side of the window title bar. I want to move it towards the center.


回答1:


WindowChrome is helpful as well.

http://blogs.msdn.com/b/wpfsdk/archive/2010/08/25/experiments-with-windowchrome.aspx has some useful information.

For e.g., here is a sample MainWindow.xaml that you can use as a starting point and refine further.

<Window x:Class="WindowChromeTest.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WindowChromeTest"
        mc:Ignorable="d"
        x:Name="_MainWindow"
        Title="MainWindow" Height="350" Width="525">
    <WindowChrome.WindowChrome>
        <WindowChrome GlassFrameThickness="-1" ResizeBorderThickness="4" CaptionHeight="40"/>
    </WindowChrome.WindowChrome>
    <Window.Template>
        <ControlTemplate>
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="30"/>
                    <RowDefinition Height="1*"/>
                </Grid.RowDefinitions>

                <!-- Opacity of < 1.0 helps show the minimize, maximize and close buttons --> 
                <Border Grid.Row="0" Background="Wheat" Opacity="0.8">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="30" />
                            <ColumnDefinition Width="1*"/>
                        </Grid.ColumnDefinitions>

                        <!-- System Menu -->
                        <Button Grid.Column="0"
                                WindowChrome.IsHitTestVisibleInChrome="True"
                                Command="{x:Static SystemCommands.ShowSystemMenuCommand}"
                                CommandParameter="{Binding ElementName=_MainWindow}">
                            <!-- Make sure there is a resource with name Icon in MainWindow -->
                            <Image 
                                Source="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Icon}"
                                WindowChrome.IsHitTestVisibleInChrome="True"/>
                        </Button>

                        <!-- Window Title - Center Aligned -->
                        <TextBlock 
                            Grid.Column="1"
                            TextAlignment="Center" 
                            VerticalAlignment="Center"
                            Text="{Binding Title, RelativeSource={RelativeSource TemplatedParent}}" />

                    </Grid>
                </Border>

                <!-- This is the Window's main content area -->
                <!-- Top margin 44 = WindowChrome ResizeBorderThickness (4) + CaptionHeight(40) -->
                <!-- Bottom margin 1 is somewhat arbitrary -->
                <Border Grid.Row="1" Background="White" Opacity="0.5">
                    <ContentPresenter Content="{Binding Content, RelativeSource={RelativeSource TemplatedParent}}"/>
                </Border>
            </Grid>
        </ControlTemplate>
    </Window.Template>
    <Grid>
        <TextBox/>
    </Grid>
</Window>

You'll see a window that looks like this:




回答2:


I'm assuming your question is about WPF. (as this is not possible in winrt)

Basicly, you will have to set the WindowStyle to None and create your own custom window.

You can find a lot of information and examples via the following links:

  • https://msdn.microsoft.com/en-us/library/ms748948(v=vs.100).aspx
  • http://www.codeproject.com/Articles/140267/Create-Custom-Windows-in-WPF-with-Ease

Within the custom window, you can position the title wherever you want.



来源:https://stackoverflow.com/questions/33909753/how-can-change-the-window-title-position-xaml

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!