Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.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,你好,我需要帮助切换两个按钮的内容 到目前为止,我所做的是检查按钮是否是相邻的 private int row = 4; private int col = 4; public MainWindow() { } private void Button_Click(object sender, RoutedEventArgs e) { Button cmd = (Button)sender; MessageBox.Show(cmd.Tag.ToString()); s

你好,我需要帮助切换两个按钮的内容

到目前为止,我所做的是检查按钮是否是相邻的

private int row = 4;
private int col = 4;

public MainWindow()
{

}

private void Button_Click(object sender, RoutedEventArgs e)
{
    Button cmd = (Button)sender;
    MessageBox.Show(cmd.Tag.ToString());
    string txt = cmd.Tag.ToString();
    int r = int.Parse("" + txt[0]);
    int c = int.Parse("" + txt[1]);
    if (Math.Abs(r - row) + Math.Abs(c - col) == 1)
    {
        MessageBox.Show(r + "  " + c);
    }
我的XAML文件中的按钮是这样的

<Button Tag="00" Grid.Row="0" Grid.Column="0" Click="Button_Click">A</Button>
<Button Tag="01" Grid.Row="0" Grid.Column="1" Click="Button_Click">B</Button>
A
B
挑战在于切换内容(A和B)


有人能帮我吗?

只需使用一个临时变量来保存其中一个字符串

string tmp = Button1.Text;
Button1.Text = Button2.Text;
Button2.Text = tmp;
  • 不要使用WinForms事件处理方法,如单击按钮
  • 对按钮内容使用绑定
  • 看看这些命令
  • 看看MVVM方法

  • 我会跳过通用的eventhandler名称。您需要将要移动到的按钮存储在临时变量中。

    我使用了九个按钮:

            <Button Tag="00" Grid.Row="0" Grid.Column="0" Margin="15,21,13,23" Name="btn1" Click="btn1_Click">A</Button>
            <Button Tag="01" Grid.Row="0" Grid.Column="1" Margin="15,21,13,23" Name="btn2" Click="btn1_Click">B</Button>
            <Button Tag="02" Grid.Row="0" Grid.Column="2" Margin="15,21,13,23" Name="btn3" Click="btn1_Click">C</Button>
            <Button Tag="10" Grid.Row="1" Grid.Column="0" Margin="15,21,13,23" Name="btn4" Click="btn1_Click">D</Button>
            <Button Tag="11" Grid.Row="1" Grid.Column="1" Margin="15,21,13,23" Name="btn5" Click="btn1_Click">E</Button>
            <Button Tag="12" Grid.Row="1" Grid.Column="2" Margin="15,21,13,23" Name="btn6" Click="btn1_Click">F</Button>
            <Button Tag="20" Grid.Row="2" Grid.Column="0" Margin="15,21,13,23" Name="btn7" Click="btn1_Click">G</Button>
            <Button Tag="21" Grid.Row="2" Grid.Column="1" Margin="15,21,13,23" Name="btn8" Click="btn1_Click">H</Button>
            <Button Tag="22" Grid.Row="2" Grid.Column="2" Margin="15,21,13,23" Name="btn9" Click="btn1_Click">I</Button>
    
    A
    B
    C
    D
    E
    F
    G
    H
    我
    
    此方法用于从网格中获取按钮并更改值:

    private int row = 2;
        private int col = 2;
    
        private void btn1_Click(object sender, RoutedEventArgs args)
        {
            Button cmd = (Button)sender;
            string txt = cmd.Tag.ToString();
            int r = int.Parse("" + txt[0]);
            int c = int.Parse("" + txt[1]);
            if (Math.Abs(r - row) + Math.Abs(c - col) == 1)
            {
                MessageBox.Show(r + "  " + c);
                Button nearButton = grd1.Children.Cast<Button>().First(e => Grid.GetRow(e) == row && Grid.GetColumn(e) == col);
                Object tmp = nearButton.Content;
                nearButton.Content = cmd.Content;
                cmd.Content = tmp;
            }
        }
    
    private int row=2;
    私有int col=2;
    私有无效btn1_单击(对象发送方、路由目标参数)
    {
    按钮cmd=(按钮)发送器;
    string txt=cmd.Tag.ToString();
    int r=int.Parse(“+txt[0]);
    int c=int.Parse(“+txt[1]);
    if(Math.Abs(r-row)+Math.Abs(c-col)==1)
    {
    MessageBox.Show(r+“”+c);
    按钮nearButton=grd1.Children.Cast().First(e=>Grid.GetRow(e)==row&&Grid.GetColumn(e)==col);
    对象tmp=nearButton.Content;
    nearButton.Content=cmd.Content;
    cmd.Content=tmp;
    }
    }
    
    在我的示例中,指定按钮旁边的两个按钮会随之更改其值,希望这是您的意图


    (通过X和Y从网格中获取物品被盗)

    某个地方,一只WPF小猫死了。请看看卡雷尔的答案。切换按钮型号应该是轻而易举的事。