這是ChildWindow
's control template中似乎是一個奇怪選擇的結果 - Title
內容沒有延伸,所以如果不對其進行任何硬編碼,就無法正確對齊任何內容。所以,你可以繼續前進,只是採用固定寬度的網格列寬度:
<controls:ChildWindow.Title>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="250"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions>
<TextBlock Text="This is textblock" Grid.Column="0"/>
<Button Content="Help" Name="btnHelp" Grid.Column="1" />
</Grid>
</controls:ChildWindow.Title>
這是快速和骯髒的,但不是很滿意。另一種方法是修改ControlTemplate(在上面的鏈接處),以使其表現得如您所願。發現顯示Title
的ContentControl
,並使其伸展以填充可用空間,加入HorizontalContentAlignment="Stretch"
:
<Style TargetType="controls:ChildWindow" x:Key="MyChildWindowStyle">
<!-- etc ... -->
<ContentControl Content="{TemplateBinding Title}" FontWeight="Bold"
HorizontalContentAlignment="Stretch"
HorizontalAlignment="Stretch" IsTabStop="False" Margin="6,0,6,0" VerticalAlignment="Center"/>
<!-- etc ... -->
</Style>
這樣您就可以使用正常的佈局控件像Grid
,它會呈現如預期:
<controls:ChildWindow Style="{StaticResource MyChildWindowStyle}"
...
<controls:ChildWindow.Title>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="This is textblock" Grid.Column="0"/>
<Button Content="Help" Name="btnHelp" Grid.Column="1" Width="100"/>
</Grid>
</controls:ChildWindow.Title>
對我的作品如我所料。非常感謝你! –