2016-11-03 4 views
0

CheckBoxから継承するカスタムコントロールを作成しています。内部にはTextBoxがあり、 "CheckBox"をクリックすると、TextBoxのテキストを "true"と変更したいと考えています。私はDataTriggersを使ってみましたが、何も動作していないようです。私の現在の設定は、あるWPF XAMLカスタムコントロール: "CheckBox"をクリックし、内部のテキストを更新します

<Style TargetType="{x:Type local:MyCheckBox}"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type local:MyCheckBox}"> 
       <Grid DataContext="{Binding RelativeSource={RelativeSource TemplatedParent}}" 
         Width="{TemplateBinding Width}" 
         Height="{TemplateBinding Height}"> 

        <Border x:Name="CheckBoxTextContainer" CornerRadius="50" Background="Green" 
          VerticalAlignment="Stretch" HorizontalAlignment="Stretch"> 
         <TextBlock x:Name="CheckBoxText" Text="False" VerticalAlignment="Center" HorizontalAlignment="Center"/> 
        </Border> 

       </Grid> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

どのようにして私は、「チェックボックス」をクリックしたとき、それは「CheckBoxText」のテキストを変更するようにトリガーを定義行う

あなたは( DataTriggerでこれを行うことができ

答えて

2

あなたはストーリーボードを開始したい場合は

<ControlTemplate.Triggers> 
    <Trigger Property="IsChecked" Value="True"> 
     <Setter TargetName="CheckBoxText" Property="Text" Value="True" /> 
    </Trigger> 
</ControlTemplate.Triggers> 

:あなたは) IsCheckedに到達するために RelativeSource Selfと結合するが、それは通常の Triggerを使用するように簡単です
<ControlTemplate.Triggers> 
    <Trigger Property="IsChecked" Value="True"> 
     <Setter TargetName="CheckBoxText" Property="Text" Value="True" /> 
     <Trigger.EnterActions> 
      <BeginStoryboard> 
       <Storyboard ...stuff... /> 
      </BeginStoryboard> 
     </Trigger.EnterActions> 
    </Trigger> 
</ControlTemplate.Triggers> 
+0

ありがとうございました。私はそれが簡単な答えを持っていなければならないことを知っていましたが、私はそれを見つけることができませんでした。私はあなたが私に許してすぐにあなたの答えを受け入れるよ –

+0

ストーリーボードをすぐにそこから起動する方法はありますか? –

+0

@SanjayCruze確かです。更新を参照してください。 –

関連する問題