2014-02-27 37 views
-1

如何使用c#在textblock中定义xaml中的文本。我正在重定向到一个电话页面,里面有一个stackpanel和几个文本块。如果我命名一个文本块,并在c#代码中调用它,它不起作用。如何在加载页面时在文本块中设置字符串...并且文本从前一页传递。基本上文本块中无法识别...如何使其在C#代码可见......如何在TextBlock中设置文本。

XAML:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="16,0,12,0"> 
    <StackPanel x:Name="activationPanel" Margin="0,10"> 
     <TextBlock TextWrapping="Wrap" Text="Almost there !" FontFamily="Segoe UI" FontWeight="Light" FontSize="24" Foreground="#FF486070"/> 
     <TextBlock TextWrapping="Wrap" Text="An activation mail has been sent" FontFamily="Segoe UI" FontWeight="Light" FontSize="24" Foreground="#FF486070" Margin="0,18,0,0"/> 
     <TextBlock Name="useremail" TextWrapping="Wrap" FontFamily="Segoe UI" FontWeight="SemiBold" FontSize="24" Foreground="#FF486070" Margin="0,10,0,0" LostFocus="useremail_LostFocus"/> 
     <TextBlock TextWrapping="Wrap" Text="please click on the link to activate your account" FontFamily="Segoe UI" FontWeight="Light" FontSize="24" Foreground="#FF486070" Margin="0,50,78,0"/> 
     <Button x:Name="btnAcA" Content="ACCOUNT ACTIVATED" Width="335" HorizontalAlignment="Left" Height="42" Padding="12,0,10,0" Background="#FF55D782" BorderBrush="{x:Null}" BorderThickness="0" FontSize="16" FontFamily="Segoe UI" Style="{StaticResource LoginButtonStyle}" Margin="0,90,0,25" Click="btnAcA_Click"/> 
     <Button x:Name="btnRAM" Content="RESEND ACTIVATION MAIL" Width="335" HorizontalAlignment="Left" Height="42" Padding="12,0,10,0" Background="#FF637A8A" BorderBrush="{x:Null}" BorderThickness="0" FontSize="16" FontFamily="Segoe UI" Style="{StaticResource LoginButtonStyle}" Margin="0,0,0,25"/> 
    </StackPanel> 
</Grid> 

C#:

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) 
{ 
    base.OnNavigatedTo(e); 
    string email=null; 
    if (this.NavigationContext.QueryString.ContainsKey("email")) 
    { 
     email = this.NavigationContext.QueryString["email"]; 
    } 

    Debug.WriteLine(email); 
    setTextBoxValue(email); 
} 

private void setTextBoxValue(string email) 
{ 
    //TextBlock useremail = new TextBlock(); 
    useremail.Text = email; 
} 
+0

是否在代码隐藏的同一类中使用“useremail”标记(即,它不在嵌套控件/用户控件中)? – McGarnagle

+0

我试过x:useremail for textblock。对于TextBlock来说非常特别,它在c#代码中不被识别。对于文本框x:somename运行良好。任何想法,在TextBlock中有什么特别的? – user88975

+0

你能访问'btnRAM'吗?像这样的'btnRAM.Content = toto'in'setTextBoxValue'? – aloisdg

回答

0

看一看this问题。根据接受的答案的原因可能是:X的命名空间之间

  1. 不匹配:在C#类在XAML和Class或
  2. 错误生成操作的XAML(应该是页)。

祝你好运。

1

我只是不知道发生了什么。我只是重新启动整个机器,错误消失了。

相关问题