WPF - 按钮中显示的不同信息.可以使用按钮控件还是需要自定义控件?



我需要用WPF构建一个按钮,上面提供了几个信息。我用油漆做了这里附加的按钮考试。按钮需要具备什么:

  • 可以改变其颜色的边框(顶部较粗,右侧、左侧和底部较细)
  • 边框顶部粗的文本
  • 按钮中间的图标和动态文本字段(文本中仅显示 2 位数字)
  • 更改按钮的背景色
  • 按钮
  • 右侧的一个部分,可以独立于按钮本身更改其颜色并显示附加图标

到目前为止,我尝试使用标准的 wpf 按钮,但没有成功。我能够创建不同大小的边框,但我无法在其中放置文本。此外,我无法使用StackPanel获取按钮内的所有元素。我认为标准按钮可能无法满足我的要求,所以我可能必须构建自己的按钮?

我希望你能对我有一些想法或提示,如果标准控件可能的话,或者我最好尝试构建一个自定义控件。

感谢和问候, 马蒂亚斯

我相信你可以使用数据模板来实现你的事业,检查这个 XAML:

<Button Margin="50,30,0,0" HorizontalAlignment="Left" VerticalAlignment="Top">
<Button.ContentTemplate>
<DataTemplate>
<Border BorderThickness="10,30,10,10" BorderBrush="Gray">
<StackPanel Margin="0">
<TextBlock Text="Button Name" Margin="0,-30,0,0" FontSize="24"></TextBlock>
<StackPanel Orientation="Horizontal">
<StackPanel Orientation="Horizontal" Background="LightGray">
<Border Margin="5,20" BorderThickness="5" UseLayoutRounding="False" BorderBrush="Black">
<TextBlock Text="Icon" FontSize="24" Padding="5,10" Background="White"></TextBlock>
</Border>
<Border Margin="5,20" BorderThickness="5" UseLayoutRounding="False" BorderBrush="Black">
<TextBlock Text="Text" FontSize="24" Padding="5,10" Background="White"></TextBlock>
</Border>
</StackPanel>
<StackPanel Background="DarkOrange">
<Border Margin="10,29" BorderThickness="5" BorderBrush="Black">
<TextBlock Text="Icon" FontSize="16" Background="White" Padding="1,5" Foreground="DarkOrange"></TextBlock>
</Border>
</StackPanel>
</StackPanel>
</StackPanel>
</Border>
</DataTemplate>
</Button.ContentTemplate>
</Button>

最新更新