【问题标题】:Positioning title in the center of a custom Chrome window在自定义 Chrome 窗口的中心定位标题
【发布时间】:2020-05-13 21:29:12
【问题描述】:

我几天前开始学习 WPF。现在,我已经建立了一个自定义窗口,因为默认的标题位置和颜色。我制作了一个由树自定义模板按钮和一个文本块组成的网格。问题是我不能将标题放在窗口的中心,而只能放在给定单元格的中心。有没有相对简单的方法来解决这个问题,以便窗口保持可调整大小?代码很简单,你可以想象。

<Grid.ColumnDefinitions>
    <!-- Title-->
    <ColumnDefinition Width="*"/>
    <!--Window buttons-->
    <ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>

这是图片。

【问题讨论】:

  • 我已经添加了它,但我认为代码对你没有帮助,我要求一种解决这类问题的方法。

标签: .net wpf xaml


【解决方案1】:

您需要的是 Title 控件中的 Grid.ColumnSpan=2。这意味着您占用 2 列。您仍然需要 Grid.Column=0 来告知您从第 0 列开始。

<Grid>
    <Grid.ColumnDefinitions>
        <!-- Title-->
        <ColumnDefinition Width="*"/>
        <!--Window buttons-->
        <ColumnDefinition Width="Auto"/>
    </Grid.ColumnDefinitions>
    <TextBlock Grid.Column="0" Grid.ColumnSpan="2" Text="Title" HorizontalAlignment="Center"/>
<Grid>

或者另一种方式是根本不使用列定义,而只是将按钮控件设置为 Horizo​​ntalAlignment=Right

<!-- Parent control of these should be Grid -->
<TextBlock Text="Title" HorizontalAlignment="Center"/>
<StackPanel x:Name="Buttons" HorizontalAlignment="Right" Orientation="Horizontal">
   ...
</StackPanel>

但是,无论哪种方式,请注意您的标题与按钮之间可能会发生冲突,因为您只是忽略了列大小。

我建议您坚持您所做的(类似于您发布的图片),或者只是将设计更改为不使用居中的标题,而是使用左对齐的标题。

【讨论】:

  • 正好,我正在输入一个答案,你出现了:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-05
  • 1970-01-01
  • 1970-01-01
  • 2011-03-08
  • 2012-02-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多