2016-10-07 21 views
1

こんにちは私はいくつかの助けを得ることができたかどうか、私はデータトリガーを削除し、それが動作するようにドロップシャドウを配置する場合、しかし、私はドロップシャドウをオンまたはオフにするオプションをユーザーに与えたいので、データトリガーが答えになると思いました。WPFデータトリガー

基本的に私のコントロールスタイル全体にデータトリガを追加し、fancyGraphics BOOLをTRUEまたはFALSEに変更し、すべてのコントロールドロップシャドウを調整できるようにします。

ありがとうございます。ここで

DataTriggerに結合がfancyGraphicsという名前のプロパティを探し、私のXAML

<sys:Boolean x:Key="fancyGraphics" >True</sys:Boolean> 

<Style TargetType="{x:Type Button}"> 
    <Setter Property="Background" Value="#EEE"></Setter> 
    <Setter Property="Foreground" Value="#555"></Setter> 

    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type Button}"> 

       <Border Background="{TemplateBinding Background}" BorderThickness="1" BorderBrush="#DDD"> 
        <Grid> 
         <ContentPresenter x:Name="MyContentPresenter" Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0" /> 
        </Grid> 
       </Border> 

       <ControlTemplate.Triggers> 
        <Trigger Property="IsMouseOver" Value="True"> 
         <Setter Property="Background" Value="#333"></Setter> 
         <Setter Property="BorderBrush" Value="#888"></Setter> 
        </Trigger> 

       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 

    <Style.Triggers> 
     <DataTrigger Binding="{Binding Path=fancyGraphics}" Value="True"> 
      <Setter Property="Effect"> 
       <Setter.Value> 
        <DropShadowEffect BlurRadius="20" 
           Opacity="0.5" 
           ShadowDepth="0" 
           Color="#111" /> 
       </Setter.Value> 
      </Setter> 
     </DataTrigger> 
    </Style.Triggers> 
</Style> 
+0

私はシングルボタンの内側に自分のスタイルを試してみましたが、ちょうど 'に' 'を変更しました 'datacyontextのプロパティで、fancyGraphics'が私のために働いています – Pikoh

答えて

1

です。しかし、fancyGraphicsは静的リソースです。あなたのようなバインディングを定義する必要があります。

<DataTrigger Binding="{Binding Source={StaticResource fancyGraphics}}" Value="True"> 
    <Setter Property="Effect"> 
     <Setter.Value> 
      <DropShadowEffect BlurRadius="20" 
           Opacity="0.5" 
           ShadowDepth="0" 
           Color="#111" /> 
     </Setter.Value> 
    </Setter> 
</DataTrigger> 
+0

ありがとうございました!私は静的リソースを前に試しましたが、笑、その今働いている。 – Ashley

関連する問題