我有这个xml:
<DockPanel x:Name="TitleBar" MouseDown="TitleBar_MouseDown" Background="Red">
<Canvas DockPanel.Dock="Left">
<Image Stretch="Fill" Width="295" Height="47" Source="/Resources\Images\TopPanel\Toplogo.png"/>
</Canvas>
<Canvas DockPanel.Dock="Right" Width="90">
<Button Canvas.Left="70" DockPanel.Dock="Right" Width="16" Height="14" Style="{StaticResource TransparentButton}" Click="ButtonCloseWindowClick">
<Image Height="14" VerticalAlignment="Top" >
<Image.Style>
<Style TargetType="{x:Type Image}">
<Setter Property="Source" Value="/Resources/Images/Toppanel/but_close.png"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Source" Value="/Resources/Images/Toppanel/but_close_roll.png"/>
</Trigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
</Button>
<Image Canvas.Left="50" Stretch="Fill" Width="2" Height="33" Source="/Resources/Images/Toppanel/divider.png"/>
<Button Canvas.Left="40" Width="16" Height="14" Style="{StaticResource TransparentButton}" Click="ButtonMinimizedClick" >
<Image >
<Image.Style>
<Style TargetType="{x:Type Image}">
<Setter Property="Source" Value="/Resources/Images/Toppanel/but_minimise.png"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Source" Value="/Resources/Images/TopPanel/but_minimise_roll.png"/>
</Trigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
</Button>
<Image Canvas.Left="30" Stretch="Fill" Width="2" Height="33" Source="/Resources/Images/Toppanel/divider.png"/>
<Button Canvas.Left="10" Canvas.Top="0" Width="16" Height="14" Style="{StaticResource TransparentButton}" Click="ButtonInfoClick">
<Image >
<Image.Style>
<Style TargetType="{x:Type Image}">
<Setter Property="Source" Value="/Resources/Images/Toppanel/but_info.png"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Source" Value="/Resources/Images/TopPanel/but_info_roll.png"/>
</Trigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
</Button>
<Image Canvas.Left="0" Canvas.Top="0" Stretch="Fill" Width="2" Height="33" Source="/Resources/Images/Toppanel/divider.png"/>
</Canvas>
</DockPanel>
根据我的理解,第一个画布应显示在左侧,另一个画布应显示在右侧大小的窗口上,但它们都显示在左侧大小上。为什么dockpanel不起作用?
答案 0 :(得分:1)
由于第二个Canvas
是DockPanel
的最后一个孩子而LastChildFill
为真(默认值):
如果将LastChildFill属性设置为true(默认设置),则DockPanel的最后一个子元素始终填充剩余空间,而不管您在最后一个子元素上设置的任何其他停靠值。
针对LastChildFill="False"
DockPanel
<DockPanel x:Name="TitleBar" ... LastChildFill="False">
应解决您的问题