C# 如何访问按钮中的控件。代码隐藏中的内容?

C# 如何访问按钮中的控件。代码隐藏中的内容?,c#,wpf,button,controls,C#,Wpf,Button,Controls,在XAML中,我创建了如下按钮: <Button MouseEnter="Button_MouseEnter"> <Button.Content> <Grid> <Grid.RowDefinitions> <RowDefinition/> <RowDefinition/> <R

在XAML中,我创建了如下按钮:

<Button MouseEnter="Button_MouseEnter">
    <Button.Content>
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition/>
                <RowDefinition/>
                <RowDefinition/>
            </Grid.RowDefinitions>

            <TextBlock Grid.Row="0" Text="asd"/>
            <Label Grid.Row="1" Content="xxx"/>
            <Label Grid.Row="2" Content="yyy"/>
        </Grid>
    </Button.Content>
</Button>
我该怎么做? 此外,我有多个按钮,像这样的一个自动创建的数据绑定。 我需要访问这些控件的原因是我想在某些情况下设置其中一个控件的动画

        private void Button_MouseEnter(object sender, MouseEventArgs e)
    {
        Button b = sender as Button;
        TextBox textBox = null;
        if (b != null)
        {
            foreach (var frameworkElement in ((Grid)b.Content).Children)
            {
                if (frameworkElement is TextBox)
                {
                    textBox = (TextBox)frameworkElement;
                    break;
                }
            }

        }
    }
这只是想告诉你如何提取你的按钮内容的子网格。我希望这能帮助你了解这个想法


这只是想告诉你如何提取你的按钮内容的子网格。我希望这能帮助你了解这个想法。

如果你想改变这些事情,我建议你使用MVVM模式和数据绑定


=>为文本创建属性并将文本框绑定到此文本,然后您只需更改此属性,按钮就会更改其文本。请参阅MVVM的PropertyChanged事件

如果您想更改这些内容,我建议您使用MVVM模式和数据绑定


=>为文本创建属性并将文本框绑定到此文本,然后您只需更改此属性,按钮就会更改其文本。请参阅MVVM的PropertyChanged事件

您的按钮。内容应为网格,对吗?你可以投下它

您的按钮。内容应为网格,对吗?你可以投下它

尝试过直接在XAML中使用触发器来设置按钮的动画?按钮。内容应该是网格,对吗?我的动画需要大量的计算,我不想为此创建太多的转换器@路易斯菲利佩:就这么简单。非常感谢。尝试过直接在XAML中使用触发器来设置按钮的动画?按钮。内容应该是网格,对吗?我的动画需要大量的计算,我不想为此创建太多的转换器@路易斯菲利佩:就这么简单。非常感谢。回答得好!您能告诉我是否可以通过编程将按钮的内容插入
(在本例中,整个
网格
元素)标记中,然后插入到我通过编程创建的另一个按钮中吗?回答得很好!您能否告诉我是否可以通过编程方式将
内的按钮内容(在本例中,是整个
网格
元素)标记插入我通过编程方式创建的另一个按钮中?
        private void Button_MouseEnter(object sender, MouseEventArgs e)
    {
        Button b = sender as Button;
        TextBox textBox = null;
        if (b != null)
        {
            foreach (var frameworkElement in ((Grid)b.Content).Children)
            {
                if (frameworkElement is TextBox)
                {
                    textBox = (TextBox)frameworkElement;
                    break;
                }
            }

        }
    }