2009-10-20 28 views
0

我有一个标签列表框,每个标签绑定到一个LabelName和LabelColor。我想添加一个类似于“X”的小按钮并将其附加到标签的右侧。我希望它看起来无缝,就像X非常非侵入性一样。任何想法如何做到这一点? <Label.ContentTemplate>之间的东西不起作用。我甚至不希望它看起来像一个可点击的按钮,只是一个“X”,你可以单击它来触发按钮单击事件。WPF把一个按钮放在标签上

<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> 

回答

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> 
+0

我同意Jobi Joy。使用你的代码,你实际上将标签设置为一个按钮,而不是文本和按钮。如果你想让这个按钮是非侵入性的,你将不得不改变它的ControlTemplate。 – user112889 2009-10-21 02:54:43

+0

谢谢我用下面的小调整来实现你的实现! – Shafique 2009-10-21 21:10:24

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> 

我基本上设置按钮的高度的高度标签。然后我做了一些保证金欺骗,让他们看起来就在旁边。谢谢您的帮助!

+0

我会建议在StackPanel的地方使用网格,那么你不需要做ActualHeight elementBinding那里 – 2009-10-22 00:37:00