Как настроить заголовок окна в проекте Windows App SDK (WIN UI/Project Reunion)?
Я пытаюсь создать приложение с помощью нового SDK для приложений Widows. Я использовал Windows Community Toolkit для создания приложения.
Посмотрев документацию , я попробовал это:
На первой странице, отображаемой моим приложением, я создал текстовый блок:
<TextBlock Text="Hello" x:Name="CustomTitleBar" />
В коде этой страницы я добавил следующий код:
private void Page_Loaded(object sender, RoutedEventArgs e)
{
App.MainWindow.ExtendsContentIntoTitleBar = true;
App.MainWindow.SetTitleBar(CustomTitleBar);
App.MainWindow.Activate();
}
На странице XAML приложения я следовал указаниям документации, чтобы переопределить эти значения:
<SolidColorBrush x:Key="WindowCaptionBackground">Green</SolidColorBrush>
<SolidColorBrush x:Key="WindowCaptionBackgroundDisabled">LightGreen</SolidColorBrush>
<SolidColorBrush x:Key="WindowCaptionForeground">Red</SolidColorBrush>
<SolidColorBrush x:Key="WindowCaptionForegroundDisabled">Pink</SolidColorBrush>
Это заставляет исчезнуть заголовок по умолчанию. Однако у меня осталось только слово «Привет» без фона и кнопок:
Что-то мне не хватает?
1 ответ
Вы, вероятно, должны использовать
AppWindow
и ведущий (в моем случае я использовал
OverlapedPresenter
) классы. Вот некоторый код, который я использовал в своем приложении.
public MainWindow()
{
InitializeComponent();
AppWindow appWindow = GetAppWindowForCurrentWindow();
appWindow.TitleBar.ExtendsContentIntoTitleBar = false;
}
Затем прямо под конструктором я использую метод, который Microsoft предоставляет в этом примере:
private AppWindow GetAppWindowForCurrentWindow()
{
IntPtr hWnd = WinRT.Interop.WindowNative.GetWindowHandle(this);
WindowId myWndId = Win32Interop.GetWindowIdFromWindow(hWnd);
return AppWindow.GetFromWindowId(myWndId);
}
я использую
OverlappedPresenter
class, чтобы изменить некоторые вещи в окне, например, изменить его размер или нет.