如何在c#中动态更改网格子文本块的字体大小?

时间:2015-07-17 19:42:04

标签: c# windows-runtime windows-phone

在使用Microsoft Visual Studio中的c#的Windows Phone 8.1 WinRT应用程序中,使用以下代码,如何在后面的代码中动态更改网格子文本块的字体大小?

<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-client</artifactId>
    <version>2.7.0</version>
</dependency>

我们的想法是让用户在选项屏幕中更改字体大小,然后将其保存到本地设置,然后更改显示以匹配字体大小。

加载应用程序时动态添加网格的子文本块,我不会问如何从ApplicationData.Current.LocalSettings加载值。我也知道样式和制作者还没有任何名字,如果需要可以填写。

如果可能的话,我想避免使用资源字典和数据绑定。

有人可以在后面的代码中提供一个简单的代码示例来改变字体大小吗?

1 个答案:

答案 0 :(得分:2)

以下是我用来动态更改样式的方法,但会涉及资源字典。

private void changeSzie_Click(object sender, RoutedEventArgs e)
{
    var dynamicStyle = new Windows.UI.Xaml.Style();

    var targetType = typeof(Windows.UI.Xaml.Controls.TextBlock);

    dynamicStyle.TargetType = targetType;

    dynamicStyle.Setters.Add(new Setter(Windows.UI.Xaml.Controls.TextBlock.FontSizeProperty, int.Parse(textbox.Text)));

    if (mainGrid.Resources.Keys.Contains(targetType))
    {
        mainGrid.Resources.Remove(targetType);
    }

    mainGrid.Resources.Add(targetType, dynamicStyle);
}