问题描述
我创建了一个自定义控件,该控件将作为我正在制作的其他控件的基础。然后,我已经为每个模板定义了控制模板,因此现在可以执行以下操作:
<!-- 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。
编辑:然后单击该按钮,只需将布尔控件翻转一下,控件就会切换可见性。