【问题标题】:Dynamically changing value of a property specified in a style in app.xaml动态更改 app.xaml 中样式中指定的属性的值
【发布时间】:2013-03-30 01:30:48
【问题描述】:

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

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

然后将这个样式赋予标签。

样式如下:

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

然后我把这个Style 给了我的Window XAML 中的Label,比如:

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

我想通过单击按钮更改StyleProperty 的值。我搜索了一下,但没有发现任何有用的东西。谁能建议我一个正确的方向。任何帮助将不胜感激。

谢谢。

【问题讨论】:

    标签: c# wpf label font-size


    【解决方案1】:

    如果您只想使用 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; }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-06
      • 1970-01-01
      • 1970-01-01
      • 2019-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多