【问题标题】:Resize borderless window wpf调整无边框窗口wpf的大小
【发布时间】:2011-09-22 07:25:30
【问题描述】:

我怎么能用 wpf 而不是 windows 窗体来做this

【问题讨论】:

    标签: c# wpf transparency


    【解决方案1】:

    这是 WPF 中的 sample 另一个带有不同示例的 blog

    【讨论】:

    • 这两个链接现在都失效了
    【解决方案2】:

    您可以通过设置 WindowChrome 来做到这一点。

            /* Set Borderless Chrome to this Window */
            WindowChrome Resizable_BorderLess_Chrome = new WindowChrome();
            Resizable_BorderLess_Chrome.GlassFrameThickness = new Thickness(0);
            Resizable_BorderLess_Chrome.CornerRadius = new CornerRadius(0);
            Resizable_BorderLess_Chrome.CaptionHeight = 5.0;            
            WindowChrome.SetWindowChrome(this, Resizable_BorderLess_Chrome);
    

    在窗口构造函数中添加上面的代码以获得无边框可调整大小的窗口。 或者您可以使用窗口样式设置器来设置窗口镶边属性:

    <Setter Property="WindowChrome.WindowChrome">
            <Setter.Value>
                <WindowChrome CornerRadius="0" GlassFrameThickness="1" UseAeroCaptionButtons="False"/>
            </Setter.Value>
    </Setter>
    

    除此之外,您还需要将 ResizeMode 设置为 CanResize(或任何适合您目的的 CanResizeWithGrip)并将 Window Style 设置为 None。

    Refer MSDN link for more information

    If you are looking for Metro UI like window please check this SO Question

    【讨论】:

    • 太棒了。应该注意的是,这是 .NET 4.5 API。
    • 您可以使用 shell 集成库在 .NET 4.0 中获得相同的功能。 archive.msdn.microsoft.com/WPFShell 。尽管命名空间发生了重大变化。
    • 与此同时,我发现WindowChrome 也是 Microsoft 为 .NET 4 提供的 Ribbon UI 的一部分,它可以是 downloaded here,尽管获取 WindowChrome 只需要包中的一个 DLL。
    猜你喜欢
    • 2013-07-12
    • 1970-01-01
    • 2021-06-18
    • 2013-06-19
    • 2011-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多