【发布时间】:2015-06-12 01:52:07
【问题描述】:
我要做的是创建一个有两个标签的按钮(一个在右侧,一个在左侧。
右侧标签(和整个右侧)的颜色必须与左侧 (you can see a sample of button here) 不同。
我尝试使用网格、停靠面板等创建新的自定义控件...但看起来没有我想要的。所以我问你。
如何创建这样的按钮?
【问题讨论】:
我要做的是创建一个有两个标签的按钮(一个在右侧,一个在左侧。
右侧标签(和整个右侧)的颜色必须与左侧 (you can see a sample of button here) 不同。
我尝试使用网格、停靠面板等创建新的自定义控件...但看起来没有我想要的。所以我问你。
如何创建这样的按钮?
【问题讨论】:
您所要做的就是在按钮的内容属性中添加StackPanel。在此 Stackpanel 中,您可以输入 2 TextBlock。如果您想为每一方设置自定义颜色,您可能希望将您的TextBlock 嵌入Border 块中。 Border 块具有背景属性。
一个例子是:
<Button Height="20" Width="50">
<StackPanel Orientation="Horizontal">
<Border Background="Yellow">
<TextBlock Text="Test"/>
</Border>
<Border Background="Green">
<TextBlock Text="Test2"/>
</Border>
</StackPanel>
</Button>
然后您可以使用 StackPanel 的大小、边框的颜色、文本块的文本以及您可能想要更改的任何其他属性。
【讨论】:
您也可以尝试使用 Grid 作为按钮的内容并使用边框作为颜色。
<Button x:Name="MyButton" Padding="10px"
Width="200" Height="75" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="7*" />
<ColumnDefinition Width="3*" />
</Grid.ColumnDefinitions>
<Border BorderBrush="Black" BorderThickness="2" Grid.Column="0" Background="White">
<TextBlock Text="Some Text" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Border>
<Border BorderBrush="Black" BorderThickness="2" Grid.Column="1" Background="red">
<TextBlock Text="text2" VerticalAlignment="Center" HorizontalAlignment="Center" />
</Border>
</Grid>
</Button>
【讨论】: