WPF按钮,带有多个文本元素,适用于10英尺gui

时间:2013-09-04 04:51:37

标签: c# .net wpf

我正在尝试使用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的布局,组合文本最终位于按钮的中间。我做错了什么或者我应该使用不同的外部容器吗?

2 个答案:

答案 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)

尝试将“Horizo​​ntalContentAlignment =”Stretch“VerticalContentAlignment =”Stretch“添加到按钮。这样dockpanel将占据按钮内的所有空间。