如何获取XAML按钮的内容?

时间:2019-01-02 16:02:10

标签: winrt-xaml c++-winrt

如何获取XAML按钮的内容?

Visual Studio Community 15.9.4,安装了C ++ / WinRT扩展。

我可以从点击处理程序中设置按钮的内容,但无法获取当前的内容。

MainPage.xaml中的按钮定义:

<Button x:Name="myButton" Click="ClickHandler">Click Me</Button>

MainPage.cpp中的点击处理程序定义:

void MainPage::ClickHandler(IInspectable const& sender, RoutedEventArgs const& args)
{
  myButton().Content(box_value(L"Clicked"));
}

我还发现此代码可用于设置内容:

void MainPage::ClickHandler(IInspectable const& sender, RoutedEventArgs const& args)
{
  Button sendButton = winrt::unbox_value<Button>(sender);

  sendButton.Content(box_value(L"Clicked"));
}

我试图获取内容的代码只是无法编译。

1 个答案:

答案 0 :(得分:1)

在发布原始问题时,引发了一个想法,我尝试了并且起作用了。将以下内容添加到MainPage.cpp点击处理程序中:

IInspectable sendButtonContent = sendButton.Content();
hstring sendButtonString = unbox_value<hstring>(sendButtonContent);

代码暂停后,单击“按钮”后,sendButtonString的值为“已单击”。