通过按钮的依赖项属性将样式应用于控件

问题描述

我创建了一个自定义控件,该控件将作为我正在制作的其他控件的基础。然后,我已经为每个模板定义了控制模板,因此现在可以执行以下操作:

<!-- First layout -->
<custom:MyCustomControl Style="{StaticResource CustomStyle1}" />
<!-- Second layout -->
<custom:MyCustomControl Style="{StaticResource CustomStyle2}" />
...
etc.

然后我要制作它,这样我就可以通过按一下按钮从一种样式切换到另一种样式。我这样做的最初想法是使用Button依赖项属性创建自定义StyletoApply并找到包含其父项的方法。然后,我将设置按钮的OnClick方法,以将其包含控件的样式更改为按钮的dependency属性的样式。但是,我的样式无法识别:

<!-- Within a custom control or user control -->
<local:StyleButton StyletoApply="{StaticResource ResourceKey}" ... />
                                                      ^ no suggested styles

是否有可能实现这一目标?如果是这样,怎么办?如果没有,我该怎么办?

解决方法

一个可能的解决方案是在XAML中同时拥有两个控件,并将它们的@Configuration @EnableWebSecurity public class SecurityConfigForOauth extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.csrf().disable().httpBasic().disable().formLogin().disable().logout().disable().sessionManagement() .sessionCreationPolicy(SessionCreationPolicy.STATELESS); } } 绑定到视图模型中的属性,即,将Control1的Visibility绑定到视图模型中的Visibility,并将Control2的Visibility绑定到视图模型中。相反。

this answer的构想,并由我补充:

public bool StandardLayout

免责声明:我本人还没有尝试使用ConverterParameter = Inverted部件,您可能必须使另一个viewmodel属性反转第一个,或者像in here这样的InverseBooleanToVisibilityConverter。

编辑:然后单击该按钮,只需将布尔控件翻转一下,控件就会切换可见性。