我尝试为启用或禁用WPF按钮提供常用样式:
function my_login_redirect( $redirect_to, $request, $user ) {
$username = $user->user_login;
$url = home_url( "/connections/$username/profile/edit/group/1/" );
if ( isset( $user->roles ) && is_array( $user->roles ) ) {
if ( in_array( 'administrator', $user->roles ) ) {
return $redirect_to;
} else {
return esc_url( $url );
}
} else {
return $redirect_to;
}
}
add_filter( 'login_redirect', 'my_login_redirect', 10, 3 );
和我的按钮:
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
//noinspection deprecation
logoImageMaster.getViewTreeObserver().removeGlobalOnLayoutListener(this);
} else {
logoImageMaster.getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
activityInterface.doSpecialLogic();
这会在运行时产生以下异常。
<Style x:Name="btnStyle" x:Key="btnStyle" TargetType="{x:Type Button}">
<Setter Property="Foreground" Value="#FFFFFFFF"/>
<Setter Property="BorderBrush" Value="#FFCFFFFF"/>
<Style.Triggers>
<Trigger Property="IsEnabled" Value="True">
<Setter Property="Style" Value="{DynamicResource btnStyle}" />
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Style" Value="{DynamicResource btnStyle}" />
</Trigger>
</Style.Triggers>
</Style>
如何将此常用样式应用于我的按钮的两个状态?我是否可以在不使用样式覆盖按钮的模板的情况下完成?
答案 0 :(得分:4)
您的btnStyle是一种样式,启用或禁用时要更改的所有属性都会进入触发器内部,例如
&#xA;&#xA; &lt; Style x :Name =“btnStyle”x:Key =“btnStyle”TargetType =“{x:Type Button}”&gt;&#xA; &lt; Setter Property =“Foreground”Value =“#FFFFFFFF”/&gt;&#xA; &lt; Setter Property =“BorderBrush”Value =“#FFCFFFFF”/&gt;&#xA; &LT; Style.Triggers&GT;&#XA; &lt; Trigger Property =“IsEnabled”Value =“True”&gt;&#xA; &lt; Setter Property =“Content”Value =“Enabled”/&gt;&#xA; &LT; /触发&GT;&#XA; &lt; Trigger Property =“IsEnabled”Value =“False”&gt;&#xA; &lt; Setter Property =“Content”Value =“Disabled”/&gt;&#xA; &LT; /触发&GT;&#XA; &LT; /Style.Triggers>&#XA;&LT; /样式和GT;&#XA; 代码>
&#XA;
答案 1 :(得分:1)
我在@ adminSoftDK的答案帮助下找到了我的解决方案。我在两个触发器属性上设置了相同的样式。
<Style x:Key="btnStyle" TargetType="{x:Type Button}">
<Style.Triggers>
<Trigger Property="IsEnabled" Value="True">
<Setter Property="Foreground" Value="#FFFFFFFF"/>
<Setter Property="BorderBrush" Value="#FFCFFFFF"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="#FFFFFFFF"/>
<Setter Property="BorderBrush" Value="#FFCFFFFF"/>
</Trigger>
</Style.Triggers>
</Style>