C ++ с XAML и UWP

Я давно программировал на C ++ и решил вернуться к нему. С учетом вышесказанного я пытаюсь научить себя некоторым приложениям типа MS UWP, и мне трудно найти какие-либо учебные пособия и т. Д., В которых используется C ++ (вместо c #).

Я экспериментировал с панелями, а что нет, но мне трудно показывать «всплывающие окна». Вот мой XAML:

  <StackPanel
HorizontalAlignment="Stretch"VerticalAlignment="Stretch">

<CommandBar x:Name="Primary_Command_Add"HorizontalAlignment="Stretch">
<CommandBar.Content>
<TextBlock x:Name="Main_Menu"Text="Main Menu"VerticalAlignment="Top"FontSize="18"Margin="12"IsDoubleTapEnabled="False"IsHoldingEnabled="False"IsRightTapEnabled="False"Tapped="Main_Menu_Tapped">

<FlyoutBase.AttachedFlyout>
<Flyout>
<TextBlock Text="This should fly out" />
</Flyout>

</FlyoutBase.AttachedFlyout>
</TextBlock>
</CommandBar.Content>

</CommandBar>

</StackPanel>

Все, что я просто хочу сделать, это показать всплывающее окно при нажатии на «Главное меню». В моем .cpp у меня есть:

void Program::MainPage::Main_Menu_Tapped(Platform::Object^ sender, Windows::UI::Xaml::Input::TappedRoutedEventArgs^ e)
{

}

Теперь я думаю, что я бы поставил что-то вроде «Flyoutbase.ShowFlyout», но я не могу заставить что-то работать.

Должен ли я просто пойти и выучить C #?

1

Решение

Чтобы показать Flyout на C ++, вы можете попробовать это.

void MainPage::Main_Menu_Tapped(Platform::Object^ sender, Windows::UI::Xaml::Input::TappedRoutedEventArgs^ e)
{
FlyoutBase::ShowAttachedFlyout((FrameworkElement ^)sender);
}

Кстати, чтобы получить доступ к элементам пользовательского интерфейса в качестве переменных, вы можете добавить x:Name="",

XAML:

<TextBlock x:Name="My_TextBlock"/>

C ++:

void MainPage::Foo()
{
My_TextBlock->Text = L"Hello, world!";
// or My_TextBlock->Text = ref new Platform::String(L"Hello, world!");
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]