WPF在标签上放置一个按钮

时间:2009-10-20 22:04:05

标签: wpf button label

我有一个标签列表框,每个标签都绑定到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>

2 个答案:

答案 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的高度。然后我做了一些边缘捏造让它们出现在另一个旁边。谢谢你的帮助!