1
Я новичок в WPF. Мне нужно отделить этот код xaml от ControlTemplate. Это мой оригинальный код.Как отделить ControlTemplate.Triggers от ControlTemplate в xaml
<ControlTemplate x:Key="AddImgBtnTemplate" TargetType="Button" >
<Grid>
<Border Name="border" Height="25" Width="25"/>
<Image Name="Normal" Source="/UILibrary;component/Themes/Default/Images/Add.png" Height="18" Width="18"/>
<Image Name="Pressed" Source="/UILibrary;component/Themes/Default/Images/Add.png" Opacity="0.7" Visibility="Hidden" Height="18" Width="18"/>
<Image Name="Disabled" Source="/UILibrary;component/Themes/Default/Images/Add.png" Opacity="0.3" Visibility="Hidden" Height="18" Width="18"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="Normal" Property="Visibility" Value="Hidden"/>
<Setter TargetName="Pressed" Property="Visibility" Value="Visible"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="Normal" Property="Visibility" Value="Hidden"/>
<Setter TargetName="Disabled" Property="Visibility" Value="Visible"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="border" Property="CornerRadius" Value="3" />
<Setter TargetName="border" Property="BorderThickness" Value="1" />
<Setter TargetName="border" Property="BorderBrush" Value="#FF948A54" />
</Trigger>
</ControlTemplate.Triggers>
Необходимость seprate кода этот код. Этот код является повторным кодом, необходимо определить только единицы.
<ControlTemplate.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="Normal" Property="Visibility" Value="Hidden"/>
<Setter TargetName="Pressed" Property="Visibility" Value="Visible"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="Normal" Property="Visibility" Value="Hidden"/>
<Setter TargetName="Disabled" Property="Visibility" Value="Visible"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="border" Property="CornerRadius" Value="3" />
<Setter TargetName="border" Property="BorderThickness" Value="1" />
<Setter TargetName="border" Property="BorderBrush" Value="#FF948A54" />
</Trigger>
</ControlTemplate.Triggers>
, но свойство TargetName не может быть установлено в Style Setter. – user3094022
Да, вы правы, я пропустил это. Можете ли вы объяснить причины разделения этого кода? Надеюсь, это поможет найти решение. – bars222
# bars222: причины у меня есть много ControlTemplate и thire - это то же самое все ControlTemplate, поэтому нам нужно избегать повторного кода. –
user3094022