如何使用绑定更改app.xaml样式中的FontSize? (WPF)

时间:2017-03-06 05:43:46

标签: wpf binding styles

enter image description here

如果点击添加了Capture的按钮,我想更改WPF窗口的整个FontSize (Button, TextBox, Label, etc...)

我创建了Main Project和子项目来开发,我也在App.xaml中使用Style(在主项目中),我想绑定Resources FontSize(在Sub Project中)Setter Value,但是我不能给DataContext应用。 另外,我不能在另一个子项目中给出参考模型吗?

这是我的代码的一部分。

主项目(启动)中的

App.xaml

<Application xmlns:mydata="clr-namespace:Example.Exampl_Data" > ...<mydata:ChangeFontSize x:Key="MyFontKey"/>

==&GT;这是一个错误(找不到命名空间;我想因为它在另一个项目中。)

<Style x:Key="LabelTitleStyle" TargetType="Label" BasedOn="{StaticResource {x:Type Label}}">
            <Setter Property="FontSize" Value="{StaticResource MyFontKey.FontSize}"/>
            <Setter Property="FontWeight" Value="Bold"/>
            <Setter Property="Margin" Value="5"/>
        </Style>
子项目中的

example.xaml

<Label x:Name="lb_Reg" Content="TEST" Style="{DynamicResource LabelTitleStyle}"/>

ChangeFontSize.cs

public class ChangeFontSize : INotifyPropertyChanged
{
    public double fontSize=15;
    public double FontSize
    {
        get { return fontSize; }
        set { fontSize = value; }
    }

    public ChangeFontSize() { }       

    public event PropertyChangedEventHandler PropertyChanged;
    void OnPropertyChanged(string propName)
    {
        if (this.PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propName));
        }
    }

    public void Increase()
    {
        FontSize += 10;
    }

    public void Decrease()
    {
        FontSize -= 10;          
    }
}

Example.xaml.cs

private void btn_biggerF_Click(object sender, RoutedEventArgs e)
{
    cfs.Increase();
}

private void btn_smallerF_Click(object sender, RoutedEventArgs e)
{
   cfs.Decrease();           
}

0 个答案:

没有答案