用cluture改变字体系列

时间:2016-03-10 16:12:51

标签: c# wpf cultureinfo

在app.xaml.cs中,我执行以下操作来更改主控制字体大小和系列

public App()
{
    Style style = new Style
    {
        TargetType = typeof(Window)
    };

    style.Setters.Add(new Setter(Window.FontFamilyProperty, new System.Windows.Media.FontFamily("Consolas")));
    style.Setters.Add(new Setter(Window.FontSizeProperty,  30.0));

    FrameworkElement.StyleProperty.OverrideMetadata(typeof(Window), new FrameworkPropertyMetadata
    {
        DefaultValue = style
    });
}

和改变文化的按钮

 private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
        {
            if (x)
            {
                var selectrCultureInfo = new CultureInfo("Ar-EG");

                CultureResources.ChangeCulture(selectrCultureInfo);
                FlowDirection = FlowDirection.RightToLeft;
                x = false;
                EventUserControl.LanguageFlag = false;

                Style style = new Style
                {
                    TargetType = typeof(Window)
                };

                style.Setters.Add(new Setter(Window.FontFamilyProperty, new System.Windows.Media.FontFamily("Traditional Arabic")));
                style.Setters.Add(new Setter(Window.FontSizeProperty, 140.0));

                FrameworkElement.StyleProperty.OverrideMetadata(typeof(Window), new FrameworkPropertyMetadata
                {
                    DefaultValue = style
                });
            }
            else
            {
                var selectrCultureInfo = new CultureInfo("EN-US");

                CultureResources.ChangeCulture(selectrCultureInfo);
                FlowDirection = FlowDirection.LeftToRight;
                x = true;
                EventUserControl.LanguageFlag = true;
                Style style = new Style
                {
                    TargetType = typeof(Window)
                };

                style.Setters.Add(new Setter(Window.FontFamilyProperty, new System.Windows.Media.FontFamily("Consolas")));
                style.Setters.Add(new Setter(Window.FontSizeProperty, 30.0));

                FrameworkElement.StyleProperty.OverrideMetadata(typeof(Window), new FrameworkPropertyMetadata
                {
                    DefaultValue = style
                });
            }
        }

但是我收到错误PropertyMetadata已经注册了类型'Window'。任何解决此问题或取消注册和重新注册元数据的想法

0 个答案:

没有答案
相关问题