在事件处理程序中更改后,Fontsize不会增加。

时间:2013-11-05 07:13:20

标签: c# xaml windows-phone-7 windows-phone-8 windows-store-apps

我找到了解决这个问题的方法,但是我很难通过点击按钮来增加字体大小

private void ApplicationBarIconButton_Click_3(object sender, EventArgs e)
{
    if (ScrollableTextBlock.FontSize < 21.5)
    {
        ScrollableTextBlock.FontSize += 1;
    }
}

这不会增加文字大小我使用链接中提到的相同数据模板: - http://blogs.msdn.com/b/priozersk/archive/2010/09/08/creating-scrollable-textblock-for-wp7.aspx

2 个答案:

答案 0 :(得分:0)

我不确定,你的问题是什么,但字体大小正在增加。这是一个小例子:

public void appBarIncreaseFont_Click(object sender, EventArgs e, PhoneApplicationPage page)
       {
        MainPage _page = page as MainPage;
        if (_page != null)
        {
            // example 1
            List<UIElement> buttons = _page.ContentPanel.Children.Where(x => x.GetType() == typeof(Button)).ToList();
            foreach (var x in buttons)
            {
                Button button = x as Button;
                if (button != null && button.FontSize < 21.5)
                    button.FontSize += 1;
            }

            // example 2
            if (_page.textBlock1.FontSize < 21.5)
                _page.textBlock1.FontSize += 1;
        }
       } 

这些示例允许增加当前类型(按钮)的所有元素的字体大小,或者只增加具体元素字体大小(textblock1)。

请注意,此版本使用委托,即在您创建ApplicationBar时,您在那里转移PhoneApplication页面,然后在创建菜单项时,您这样做:

 ApplicationBarMenuItem appBarIncreaseFont = new ApplicationBarMenuItem("menusettings");
 appBarIncreaseFont.Click += delegate(object sender, EventArgs e)
            {
                appBarIncreaseFont_Click(sender, e, page);
            };

如果您不知道当前页面,那么您正在使用ApplicationBar无法更改任何内容。这就是你应该在这里使用委托的原因。

答案 1 :(得分:0)

您需要增加实例化控件的字体大小。在这里,您似乎试图增加类类型本身属性的字体大小。你想要做的是在.xaml文件中创建一个ScrollableTextBlock控件,类似于:

<Grid>
    <ScrollableTextBlock Name="scrollTxtBlk"
                         Text="Hello, World!" />

    <Button Content="Click Me!" 
            Click="Button_Click" />
</Grid>

然后,在您的代码隐藏文件中,添加click事件处理程序:

private void Button_Click(object sender, RoutedEventArgs e)
{
    scrollTxtBlk.FontSize += 1;
}

单击时,这会增加名为scrollTxtBlock的ScrollableTextBlock上的字体大小,您应该会看到使用新字体大小的视图更新。