簡體   English   中英

C#Visual Studio 2017無法將類型字符串隱式轉換為windows.ui.xaml.controls.textblock

[英]C# Visual Studio 2017 cannot implicitly convert type string to windows.ui.xaml.controls.textblock


剛開始使用C#並想創建簡單的UWP應用程序,我有TextBlock和Button,我想在按Button TextBlock時更改文本,但總是會出錯:

        private void Button_Click(object sender, RoutedEventArgs e)
    {
        TextBlock Text = "HELLO";
    }

CS0029 C#無法將類型“字符串”隱式轉換為“ windows.ui.xaml.controls.textblock”

我很困惑,為什么“文本”字段不理解字符串。
感謝您的幫助。

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <Button Content="Button" HorizontalAlignment="Left" Height="50" Margin="105,306,0,0" VerticalAlignment="Top" Width="146" Click="Button_Click"/>
    <TextBlock HorizontalAlignment="Left" Margin="56,141,0,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top" Height="107" Width="241" SelectionChanged="TextBlock_SelectionChanged" FontSize="36"/>
</Grid>

xaml:

<Grid>
<Button Name="btn" Click="Button_Click" Content="Button"/>
<TextBlock Name="tb"/>
</Grid>

xaml.cs:

private void Button_Click(object sender, RoutedEventArgs e)
{
    tb.Text = "HELLO";
}

或刪除Click事件並將其放在構造函數上

btn.Click += (se, arg) => tb.Text = "HELLO";

順便說一句,TextBlock沒有SelectionChanged事件

為了解釋克里斯托弗在上面所做的事情(他的代碼是正確的)

他在XAML代碼中向TextBlock對象添加了一個標識符。

Name="tb"

然后在C#代碼中,他使用標識符來引用TextBlock對象。

既然您說您是C#的新手,所以讓我給您一個金色的建議。 始終根據其分配給變量和對象(例如按鈕,文本框等)名稱(標識符) 這樣一來,您稍后在代碼中使用它們就會容易得多。

縮短一些常用命名對象的提示:

  • 按鈕= btn
  • 文字框= tbx
  • 標簽= lbl

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM