更改按钮的文本(在运行时)

时间:2014-01-31 19:26:39

标签: c# wpf silverlight xaml dynamic-text

我有一个按钮,显示“点击我!”在上面。点击后我想看,它显示“不要点击我!”永久

我在buttonname_click()函数中收到以下错误消息,我不知道如何解决它(我花了很多时间)。

当前上下文中不存在名称“buttonname”

我在这个问题中附加了Search.xaml和Search.xaml.cs。

<sdk:Page   
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"   
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" 
xmlns:local="clr-namespace:TMTemplate"
xmlns:mocal="Clr-namespace:DynamicNavigation"
DataContext="{Binding RelativeSource={RelativeSource self}}"
xmlns:ContactForm="clr-namespace:ContactForm"
mc:Ignorable="d"
x:Class="TMTemplate.Search" 
Title="Search"
d:DesignWidth="640" d:DesignHeight="480" Height="530" Width="700">
<Grid x:Name="LayoutRoot" >
    <StackPanel Margin="50,45,25,45">
        <Button Name="buttonname" Content="click me!" Click="buttonname_Click" Margin= "0,100,0,0"  Height="93" Width="518"></Button>
    </StackPanel>
</Grid>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Media.Imaging;

namespace TMTemplate
{
    public partial class Search : Page
    {
        public Search() { 
         InitializeComponent();
        }
        private void buttonname_Click(object sender, RoutedEventArgs e)
        {
         buttonname.Content = "Do not click on me!";
        }   
    }
}

2 个答案:

答案 0 :(得分:0)

您可以尝试这样做:

    private void buttonname_Click(object sender, RoutedEventArgs e)
    {
     ((Button)sender).Content = "Do not click on me!";
    } 

但是,要按原样运行代码,您需要使用x:Name而不是Name指定名称:

<Button x:Name="buttonname" Content="click me!" Click="buttonname_Click" Margin= "0,100,0,0"  Height="93" Width="518"></Button>

答案 1 :(得分:0)

<Button x:Name="buttonname" Content="click me!" Click="buttonname_Click" Margin= "0,100,0,0"  Height="93" Width="518"></Button>

private void buttonname_Click(object sender, RoutedEventArgs e)
    {
     this.buttonname.Content = "Do not click on me!";
    }