0

我正在尝试使用新的 Widows App SDK 构建应用程序。我使用 Windows 社区工具包来创建应用程序。

在查阅文档后,我尝试了这个:

在我的应用显示的第一页上,我创建了一个文本块:

<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();
 }

在 App 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> 

以上确实使默认标题栏消失了。但是,我只剩下“你好”这个词,没有背景或按钮:

截图

有什么我想念的吗?

4

1 回答 1

0

您可能应该使用AppWindowand Presenter(在我的情况下我使用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类来改变一些关于窗口的东西,比如它是否可以调整大小。

于 2022-02-01T22:46:59.270 回答