我正在尝试使用WPF为10英尺的GUI创建按钮。每个按钮需要比单个文本字符串和图像更多的数据,可能有2-3个字符串位于不同的位置和一些图像。
我试过了
<Button Height="52" HorizontalAlignment="Stretch" Name="button1" Width="407">
<Button.Content>
<DockPanel LastChildFill="True" HorizontalAlignment="Stretch">
<TextBlock Name="textBloczk2" Text="ABC" TextAlignment="Left" DockPanel.Dock="Left"/>
<TextBlock Name="textBlxock1" Text="CDE" TextAlignment="Right" DockPanel.Dock="Right"/>
</DockPanel>
</Button.Content>
</Button>
但无论我使用哪个内部容器,按钮似乎都忽略了DockPanel的布局,组合文本最终位于按钮的中间。我做错了什么或者我应该使用不同的外部容器吗?
答案 0 :(得分:3)
问题似乎是DockPanel的宽度太小,以至于右侧和左侧面板的宽度与TextBlocks的宽度相同。
这似乎按预期工作(设置DockPanel的宽度):
<Button Height="52" HorizontalAlignment="Stretch" Name="button1" Width="407">
<Button.Content>
<DockPanel LastChildFill="True" Width="300">
<TextBlock Name="textBloczk1" Text="Left" DockPanel.Dock="Left" />
<TextBlock Name="textBlxock2" Text="Right" DockPanel.Dock="Right" />
<TextBlock Name="textBlxock3" Text="Top" DockPanel.Dock="Top" />
<TextBlock Name="textBlxock4" Text="Bottom" DockPanel.Dock="Bottom" />
</DockPanel>
</Button.Content>
</Button>
答案 1 :(得分:2)
尝试将“HorizontalContentAlignment =”Stretch“VerticalContentAlignment =”Stretch“添加到按钮。这样dockpanel将占据按钮内的所有空间。