Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 单击按钮时更改标签内容_C#_Wpf_Xaml - Fatal编程技术网

C# 单击按钮时更改标签内容

C# 单击按钮时更改标签内容,c#,wpf,xaml,C#,Wpf,Xaml,我想要一个带有动态添加按钮的StackPanel,这些按钮在单击时更新标签内容。我使用按钮。单击=“ChildsButtonClick”将堆栈面板中的事件分配给它的子事件,并更新标签内容。但是,是否只可以使用XAML和绑定,触发器等来实现呢。。?你以为我是新来的 XAML: 有没有办法在没有活动的情况下做到这一点?我让它起作用了。在代码隐藏中不使用事件。不确定它是否对你有帮助,但你可能可以根据需要使用它 <Grid> <Grid.Triggers>

我想要一个带有动态添加按钮的
StackPanel
,这些按钮在单击时更新标签内容。我使用
按钮。单击=“ChildsButtonClick”
堆栈面板中的事件分配给它的子事件,并更新标签内容。但是,是否只可以使用
XAML
绑定
触发器
等来实现呢。。?你以为我是新来的

XAML:


有没有办法在没有活动的情况下做到这一点?

我让它起作用了。在代码隐藏中不使用事件。不确定它是否对你有帮助,但你可能可以根据需要使用它

<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>

你好

您需要触发事件以使其执行某些操作,否则您将什么也不做--按钮无法使用绑定到标签的触发器更新窗口上的新属性。内容?底线。您想单击一个按钮。这是一件大事。无事件,无更改。如果要使用数据绑定,必须使用返回按钮内容的字符串属性绑定标签内容。
private void ChildsButtonClick(Object sender, RoutedEventArgs e)
    {
        Button a = e.Source as Button;
        if (a != null)
        {
            label.Content = a.Content;
        }
    }
<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>