我有一个标签列表框,每个标签都绑定到LabelName和LabelColor。我想添加一个类似于“X”的小按钮,并将其附加在Label的右侧。我希望它看起来无缝,就像X非常非侵入性一样。任何想法如何做到这一点? <Label.ContentTemplate>
之间的东西不起作用。我甚至不希望它看起来像一个可点击的按钮,只需一个“X”,你可以点击它触发按钮点击事件。
<DataTemplate x:Key="LabelsListDataTemplate">
<Border>
<StackPanel Orientation="Horizontal">
<Label Margin ="3,5,3,5" BorderThickness="1" BorderBrush="Black"
Background="{Binding Path=DefaultColor}"
Content="{Binding Path=LabelName}">
<Label.ContentTemplate>
<DataTemplate>
<Button Background="{Binding Path=DefaultColor}" Content="X" />
</DataTemplate>
</Label.ContentTemplate>
</Label>
</StackPanel>
</Border>
</DataTemplate>
答案 0 :(得分:1)
为什么要在controltemplate中添加按钮。检查以下代码是否有效。
<DataTemplate x:Key="LabelsListDataTemplate">
<Border>
<StackPanel Orientation="Horizontal">
<Label Margin ="3,5,3,5" BorderThickness="1" BorderBrush="Black"
Background="{Binding Path=DefaultColor}"
Content="{Binding Path=LabelName}"/>
<Button Background="{Binding Path=DefaultColor}" Content="X" />
</StackPanel>
</Border>
</DataTemplate>
答案 1 :(得分:0)
很好,这很好用。我稍微调整了一下,让“X”按钮看起来更像是标签本身更漂亮和自然,如下所示:
<DataTemplate x:Key="LabelsListDataTemplate">
<Border>
<StackPanel Orientation="Horizontal">
<Label Margin ="3,5,0,5" BorderThickness="1" BorderBrush="Black" Name="RowLabel"
Background="{Binding Path=DefaultColor}"
Content="{Binding Path=LabelName}"></Label>
<Button Background="{Binding Path=DefaultColor}" Content="X" Height="{Binding ElementName=RowLabel, Path=ActualHeight}"
Margin="0,5,3,5" />
</StackPanel>
</Border>
</DataTemplate>
我基本上将按钮的高度设置为Label的高度。然后我做了一些边缘捏造让它们出现在另一个旁边。谢谢你的帮助!