2011-05-10 29 views
6

Tôi có quyền kiểm soát nhãn .. Và thuộc tính phụ thuộc boolean "IsLink" ... Vì vậy, nếu IsLink = true, tôi cần tạo Foreground và Con trỏ màu xanh là "Bàn tay" ..Trình kích hoạt trong XAML

tôi có thể làm cho nó với các ràng buộc, nhưng trong trường hợp này tôi cần phải viết hai Converters (BoolToCursor và BoolToForeground), nhưng tôi quá lười biếng cho rằng :)

vì vậy, tôi đã tryed smth như thế:

<Label Name="lblContent" VerticalAlignment="Center" FontSize="14"> 
    <Label.Style> 
     <Style TargetType="Label"> 
      <Style.Triggers> 
       <Trigger SourceName="myControl" Property="IsLink" Value="True"> 
        <!--Set properties here--> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </Label.Style> 
    label's text 
</Label> 

Nhưng nó không hoạt động ... Bất kỳ ý tưởng, gentlemens? :)

Trả lời

8

Sử dụng một DataTrigger thay vì bình thường Trigger.Check mã dưới đây

XAML

<Window x:Class="WpfApplication1.MainWindow" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      Title="MainWindow" Height="350" Width="525"> 
     <Grid> 
      <Label Name="lblContent" VerticalAlignment="Center" FontSize="14"> 
       <Label.Style> 
        <Style TargetType="Label"> 
         <Style.Triggers> 
          <DataTrigger Binding="{Binding Path=IsLink}" 
                  Value="True"> 
           <Setter Property="Foreground" Value="Blue" /> 
           <Setter Property="Cursor" Value="Hand" /> 
          </DataTrigger> 
         </Style.Triggers> 
        </Style> 
       </Label.Style> 
       label's text 
      </Label> 

     </Grid> 
    </Window> 

public partial class MainWindow : Window 
    { 
     public MainWindow() 
     { 
      InitializeComponent(); 
      this.DataContext = this; 
     } 


     public Boolean IsLink 
     { 
      get { return (Boolean)GetValue(IsLinkProperty); } 
      set { SetValue(IsLinkProperty, value); } 
     } 


     public static readonly DependencyProperty IsLinkProperty = 
      DependencyProperty.Register("IsLink", typeof(Boolean), 
      typeof(MainWindow), new UIPropertyMetadata(false)); 


    } 
+0

Cảm ơn rất nhiều! Nhưng một câu hỏi tương tự nữa, nếu tôi có hai nhãn và tôi muốn ẩn một nhãn nếu Nội dung của người khác là null, tôi đã thử như thế này nhưng nó không hoạt động –

2
<CheckBox x:Name="IsLink">IsLink</CheckBox> 
<Label Name="lblContent" 
     VerticalAlignment="Center" 
     FontSize="14"> 
    <Label.Style> 
     <Style> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding ElementName=IsLink, Path=IsChecked}" 
           Value="true"> 

        <Setter Property="Label.Foreground" 
          Value="Blue" /> 
        <Setter Property="Label.Cursor" 
          Value="Hand" /> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </Label.Style> 
    label's text 
</Label> 
Các vấn đề liên quan