Основной проблемой является проблема макета XAML.Вот небольшая демонстрация, которая должна поставить вас на правильный путь.Я изменил вашу MainPage выше, чтобы она выглядела так:
MainPage::MainPage()
{
InitializeComponent();
winrt::hstring hs = L"Hello World!";
TextBlock tbx;
tbx.FontFamily(Windows::UI::Xaml::Media::FontFamily(
L"Segoe UI Semibold"));
tbx.FontSize(72.0);
tbx.Foreground(SolidColorBrush(Colors::Orange()));
tbx.VerticalAlignment(VerticalAlignment::Center);
tbx.TextAlignment(TextAlignment::Center);
tbx.Text(hs);
this->Content().as<Panel>().Children().Append(tbx);
}
Страница XAML выглядит следующим образом:
<Page ... >
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button x:Name="myButton" >Click Me</Button>
</StackPanel>
</Page>
Основная идея состоит в том, что вы хотите добавить элемент управления на панель, котораяуправляет макетом на главной странице, а не добавляет его к объекту Window верхнего уровня.Может быть поучительно немного поиграть в конструкторе, чтобы получить желаемый вид, а затем реструктурировать его в эквивалентный код, используя C ++ /WinRT.
Ben