我有一个UWP应用程序,我已经为按钮和文本块创建了不同的样式,在不同的页面中使用。我曾假设我将能够将应用于样式本身。但是,Visual中的setter似乎只能直接应用于特定的控件。是否有任何方法将Visual应用于样式元素。我有60个文本块在我的页面,都有一个特定的字体大小。我是否必须为这些控件中的每个人指定一个不同的字体大小才能使用Visual,还是有更简单的方法来做到这一点?
提前谢谢。
发布于 2016-04-28 21:59:56
我认为您应该采取一种不同的方法:将60 TextBlock的字体大小绑定到属性,并在代码后面触发条件时更新+通知它。
在XAML中:
<TextBlock FontSize={"Binding MyFontSize"}/>
<!-- 60 of your textblock here ...... -->在您的ViewModel中,我使用MVVM通知属性更改事件:
private double _MyFontSize = null;
public double MyFontSize
{
get
{
return _MyFontSize;
}
set
{
Set(ref _MyFontSize, value);
}
}在代码后面:在结构体中:
this.SizeChanged += LoginPanel_SizeChanged;
private void LoginPanel_SizeChanged(object sender, SizeChangedEventArgs e)
{
if(e.NewSize.Width >= 600)
{
(this.DataContext as MyViewModel).MyFontSize = 20;
}
else
{
(this.DataContext as MyViewModel).MyFontSize = 16;
}
}https://stackoverflow.com/questions/36925923
复制相似问题