动态更改app.xaml中样式中指定的属性的值

时间:2013-04-08 04:11:26

标签: c# wpf label font-size

我是WPF的新手。最近我遇到了一个问题,我必须动态更改标签的字体大小。

为实现这一目标,我创建了一个测试应用程序,并在我的App.xaml中创建了一个带有键的样式。

然后将这种风格赋予标签。

样式如下:

<Style x:Key="myLbl" TargetType="Label">
    <Setter Property="FontSize" Value="20"/>
</Style>

然后我将此Style发送到Label Window中的XAML,如:

<Label Name="lblDemo" Content="Test" Foreground="Black" Style="{DynamicResource myLbl}"/>

我想点击按钮更改PropertyStyle的值。我搜索了一下但没有找到任何有用的东西。任何人都可以建议我一个正确的方向。任何帮助将不胜感激。

感谢。

1 个答案:

答案 0 :(得分:2)

如果你只想使用XAML这样做,你可以这样做:

<StackPanel>
    <Label Name="lblDemo" Content="Test" Foreground="Black" FontSize="20"/>
    <Button x:Name="ClickMe" Content="Enlarge" />
    <StackPanel.Triggers>
        <EventTrigger RoutedEvent="Button.Click" SourceName="ClickMe">
            <EventTrigger.Actions>
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimationUsingKeyFrames Storyboard.TargetName="lblDemo" Storyboard.TargetProperty="FontSize">
                            <DiscreteDoubleKeyFrame KeyTime="00:00:00.01" Value="48" />
                        </DoubleAnimationUsingKeyFrames>
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger.Actions>
        </EventTrigger>
    </StackPanel.Triggers>
</StackPanel>

或者您可以使用此代码在代码中使用旧的Click事件处理程序(使用上面的Button而不使用StackPanel.Triggers部分):

private void ClickMe_OnClick(object sender, RoutedEventArgs e) { lblDemo.FontSize = 48; }