【问题标题】:Change label content when click a button单击按钮时更改标签内容
【发布时间】:2016-02-05 10:01:42
【问题描述】:

我想要一个带有动态添加按钮的StackPanel,当点击时更新标签内容。我使用Button.Click="ChildsButtonClick"StackPanel 中的事件分配给它的孩子并更新标签内容。但是,是否可以只使用XAMLBindingsTriggers 等...?你以为我是这个世界的新手。

XAML:

<StackPanel HorizontalAlignment="Left"
                Height="165"
                VerticalAlignment="Top"
                Width="465"
                Button.Click="ChildsButtonClick">
        <Button x:Name="button"
                Content="Button1"
                d:LayoutOverrides="Height" />
        <Button x:Name="button1"
                Content="Button2"
                d:LayoutOverrides="Height" />
    </StackPanel>
    <Label x:Name="label"
           Content="Label"
           HorizontalAlignment="Left"
           Margin="0,195,0,0"
           VerticalAlignment="Top" />

CS:

private void ChildsButtonClick(Object sender, RoutedEventArgs e)
    {
        Button a = e.Source as Button;
        if (a != null)
        {
            label.Content = a.Content;
        }
    }

有没有办法在没有事件的情况下做到这一点?

【问题讨论】:

  • 你需要触发一个事件让它做某事,否则你什么也做不了-.-
  • 按钮无法使用触发器更新窗口上的新属性,即绑定到 label.content?
  • 底线。你想点击一个按钮。那是一个事件。没有事件,没有变化。
  • 如果要使用数据绑定,则必须将标签的内容与返回按钮内容的字符串属性绑定。

标签: c# wpf xaml


【解决方案1】:

我得到了这个工作。在后面的代码中不使用任何事件。不确定它是否对您有帮助,但您可能能够适应它。

<Grid>
   <Grid.Triggers>
        <EventTrigger RoutedEvent="Button.Click" SourceName="Button">
              <EventTrigger.Actions>
                    <BeginStoryboard>
                        <Storyboard>
                            <ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="label" Storyboard.TargetProperty="Content">
                                <DiscreteObjectKeyFrame KeyTime="0" Value="Content"/>
                            </ObjectAnimationUsingKeyFrames>
                        </Storyboard>
                    </BeginStoryboard>
              </EventTrigger.Actions>
        </EventTrigger>
  </Grid.Triggers>
        <DockPanel>
        <Label DockPanel.Dock="Top" x:Name="label">Hi</Label>
        <Button x:Name="Button" DockPanel.Dock="Bottom" Height="50" Width="50">

        </Button>
        </DockPanel>
    </Grid>

【讨论】:

    猜你喜欢
    • 2017-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-05
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    相关资源
    最近更新 更多