2010-10-06 28 views
14

Tôi có một Button và TextBox bình thường trong một WPF-Window và tôi muốn một Template cho Button với EventTrigger lắng nghe Button.Click và sau đó thiết lập một thuộc tính boolean của TextBox. Không có mã.EventTrigger với Setter trong WPF?

Something như thế này:

<ControlTemplate.Triggers> 
    <EventTrigger SourceName="MyButton" RoutedEvent="Button.Click"> 
    <Setter TargetName="MyTextBox" Property="Focusable" Value="False" /> 
    </EventTrigger> 

Trả lời

14

Đây là một mẫu mà bộ và xóa Focusable trên một TextBox từ một EventTrigger.
Hy vọng rằng bạn có thể điều chỉnh ví dụ này cho tình huống của mình.

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition/> 
     <RowDefinition/> 
     <RowDefinition/> 
    </Grid.RowDefinitions> 
    <TextBox 
     x:Name="tb" 
     Grid.Row="0" 
     Text="Here is some sample text"> 
    </TextBox> 
    <Button 
     x:Name="btnFocusTrue" 
     Grid.Row="1" 
     Content="Set True"> 
    </Button> 
    <Button 
     x:Name="btnFocusFalse" 
     Grid.Row="2" 
     Content="Set False"> 
    </Button> 
    <Grid.Triggers> 
     <EventTrigger RoutedEvent="Button.Click" SourceName="btnFocusTrue"> 
      <BeginStoryboard Name="FocusTrueStoryboard"> 
       <Storyboard > 
        <BooleanAnimationUsingKeyFrames 
         Storyboard.TargetName="tb" 
         Storyboard.TargetProperty="(TextBox.Focusable)"> 
         <DiscreteBooleanKeyFrame 
          KeyTime="00:00:01" 
          Value="True" /> 
        </BooleanAnimationUsingKeyFrames> 
       </Storyboard> 
      </BeginStoryboard> 
     </EventTrigger> 
     <EventTrigger RoutedEvent="Button.Click" SourceName="btnFocusFalse"> 
      <BeginStoryboard Name="FoucsFalseStoryboard"> 
       <Storyboard > 
        <BooleanAnimationUsingKeyFrames 
         Storyboard.TargetName="tb" 
         Storyboard.TargetProperty="(TextBox.Focusable)"> 
         <DiscreteBooleanKeyFrame 
          KeyTime="00:00:01" 
          Value="False" /> 
        </BooleanAnimationUsingKeyFrames> 
       </Storyboard> 
      </BeginStoryboard> 
     </EventTrigger> 
    </Grid.Triggers> 
</Grid> 
+2

Ahhh bỏ lỡ rời rạc * keyframe-lớp ... nó một giải pháp cho vấn đề của tôi nhưng rất nhiều của XAML cho một nhiệm vụ đơn giản như vậy ... tôi muốn có nơi một phiên bản ngắn hơn –

+0

Làm sao chúng ta có thể thiết lập giá trị thuộc tính phụ thuộc tùy chỉnh trong trình kích hoạt sự kiện ?? – Ujjwal27

Các vấn đề liên quan