gpt4 book ai didi

c# - WPF 自定义 Chrome 窗口?

转载 作者:太空狗 更新时间:2023-10-29 23:58:11 24 4
gpt4 key购买 nike

我一直在尝试做一些类似这样的事情... enter image description here

我看了又看,只找到了这个 article .我无法将其集成到我的应用程序中。我今天刚开始使用 WPF,所以我正在学习。我已经下载了 window.Shell dLL。我还需要什么?谢谢!

最佳答案

如果您正在寻找有关如何将其添加到您的应用程序的分步指南,我可以试一试;我只是碰巧需要对一个小应用程序进行一些复习,我喜欢这个并尝试了一下 - 我花了大约 45 分钟来申请。实际上很酷!

首先:下载应用程序并将其解压缩到您的计算机。

您将在其中找到三个子文件夹。一个带有示例应用程序,一个名为 Microsoft.Windows.Shell,一个名为 CustomChromeLibrary。将后两个复制到您的项目 map 的根文件夹,将它们添加到您的项目 map (添加现有项目),然后从您的启动项目中引用 他们。

现在打开您要应用 CustomChromeLibrary 的窗口。您需要从

更改根
<Window> 

<ccl:CustomChromeWindow>

,这是通过使用此代码作为文档根来完成的:

<ccl:CustomChromeWindow 
Title="YourWindowTitle" Height="268" Width="733" ResizeMode="CanResize"
x:Class="YourNamespace.YourWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:shell="http://schemas.microsoft.com/winfx/2006/xaml/presentation/shell"
xmlns:ccl="clr-namespace:CustomChromeLibrary;assembly=CustomChromeLibrary"
xmlns:local="clr-namespace:YourNamespace"
>

注意示例中的最后三行。这些需要更新以引用正确的库;最后一个实际上引用了您的 namespace 。

接下来您需要更新您的窗口的源代码,因为这仍然是一个简单的窗口,您会收到一个错误。

改变这个

public partial class YourWindow : Window

对此

public partial class YourWindow : CustomChromeLibrary.CustomChromeWindow

你已经完成一半了!

接下来您只需为您的窗口创建对象(标题栏等)。这在5 号示例项目 中做得非常好;我真的只是复制它。

一切从

<shell:WindowChrome.WindowChrome>
<shell:WindowChrome
...

到这里

    <!--min/max/close buttons-->
<ccl:CaptionButtons/>

现在你可以像这样填充你的窗口

    <Grid> 
The content of your Window goes here
</Grid>

然后像这样关闭xaml

    </Grid>
</ccl:CustomChromeWindow>

现在,如果您尝试运行它,您将收到另一个错误。仍然缺少三个文件:

您需要的第一个文件是 Microsoft 文件:CaptionButtonRectToMarginConverter.cs;您还会在示例中找到它。将它复制到您的项目并添加它(添加现有文件)。

您需要对其进行一项更改:

namespace YourNamespace
{ ...

而不是示例的命名空间。

最后,您需要创建按钮的两个 xaml 文件:GlassButton.xaml 和 GlassIcon.xaml;它们可以在“资源”子文件夹中找到(并且在 xaml 中被引用为资源字典)。将整个子文件夹复制到您的项目并将这两个文件添加到您的项目(添加现有文件)。

现在您终于可以运行您的项目了。

让我们不要忘记这一点:gbahns 的许多荣誉,原始文章的作者在 codeplex.com 上!

关于c# - WPF 自定义 Chrome 窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15316592/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com