0
У меня есть Checkbox.xaml
файл. Я хочу применить два разных эффекта Dropshadow
на мыши на CheckBox
. Поэтому я взял два MultiTriggers
. Я хочу удалить те MultiTriggers
и объединить их в один триггер, используя DataBinding
до Background
из Border
. Потому что элемент Border
всегда будет иметь правильный фон из-за первого запуска, который я применил.Binding background to templated control
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="..\Colors\Colors.xaml"></ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
<ControlTemplate x:Key="CheckBoxTemplate" TargetType="CheckBox" >
<BulletDecorator >
<BulletDecorator.Bullet>
<Border x:Name="Border"
Width="13"
Height="13"
CornerRadius="0"
Background="{StaticResource TextNormalBrush}"
BorderThickness="3"
BorderBrush="Black">
</Border>
</BulletDecorator.Bullet>
<ContentPresenter Margin="4,0,0,0"
VerticalAlignment="Center"
HorizontalAlignment="Left"
RecognizesAccessKey="True" />
</BulletDecorator>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter TargetName="Border" Property="Background" Value="{StaticResource AlternateLinearBrush}"/>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True"></Condition>
<Condition Property="IsChecked" Value="False"></Condition>
</MultiTrigger.Conditions>
<MultiTrigger.Setters>
<Setter TargetName="Border" Property="Effect">
<Setter.Value>
<DropShadowEffect ShadowDepth="0" Direction="0" BlurRadius="15" Opacity="1" Color="{StaticResource TextNormalColor }">
</DropShadowEffect>
</Setter.Value>
</Setter>
</MultiTrigger.Setters>
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True"></Condition>
<Condition Property="IsChecked" Value="True"></Condition>
</MultiTrigger.Conditions>
<MultiTrigger.Setters>
<Setter TargetName="Border" Property="Effect">
<Setter.Value>
<DropShadowEffect ShadowDepth="0" Direction="0" BlurRadius="15" Opacity="1" Color="{StaticResource AlternateColor }">
</DropShadowEffect>
</Setter.Value>
</Setter>
</MultiTrigger.Setters>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="CheckBoxStyle" TargetType="{x:Type CheckBox}">
<Setter Property="Template" Value="{StaticResource CheckBoxTemplate}" />
<Setter Property="Foreground" Value="{StaticResource TextNormalBrush}" />
<Setter Property="TextOptions.TextHintingMode" Value="Animated"/>
</Style>
</ResourceDictionary>
Что вы хотите сказать? – Bernard
Я хочу использовать DataBinding для фона, чтобы получить фон элемента «Border» в триггере. –
Я в замешательстве. Вы хотите реализовать два разных эффекта «DropShadow» через «MultiTrigger». Теперь вы хотите по какой-либо причине изменить «Background» of * Border *. Я не понимаю, почему. Немного смущает все это. Можете ли вы объяснить это, чтобы я мог, возможно, предоставить решение? – DHN