Я давно программировал на 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 #?
Чтобы показать 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!");
}
Других решений пока нет …