【问题标题】:AllowTransparency makes maximized overscanAllowTransparency 使过扫描最大化
【发布时间】:2015-02-21 18:27:33
【问题描述】:

我目前正在使用 WPF 制作媒体播放器,但遇到了问题。

我希望布局没有常规的窗口边框和阴影。我通过设置 WindowStyle=none 和 AllowTransparency=true 来做到这一点。这一切都很好,只要我不想全屏使用它。一旦我尝试将 WindowState 设置为最大化,它就会疯狂地过度扫描(它会切断所有边缘)。这显然是由 AllowTransparency=true 部分引起的。如果我将其设置回 false,则最大化的部分将按预期工作。不幸的是,一旦应用程序启动,我就无法设置 AllowTransparency。我可以通过使用边框并调整其边距来稍微补偿这一点,但它看起来并不正确,我不确定它是否适用于不同的分辨率。

总结一下:

  • 在 AllowTransparency=true 的情况下,是否可以使 WindowState 最大化正常工作?
  • 或者是否有另一种方法可以在不设置 AllowTransparency=true 的情况下使窗口没有正常的窗口边框
  • 或者有没有更好的方法让应用程序全屏显示?

有没有人有解决方案或想法来完成这个?

【问题讨论】:

  • 您没有将WindowState 设置为None,因为这不是一个有效值...也许您应该相应地编辑您的问题?这是一个我以前从未见过的有趣问题,所以 +1。
  • Sheridan:不。不是 WindowState ... -_- WindowStyle 设置为无。已修复帖子。感谢您的提醒。 :)

标签: c# wpf xaml fullscreen maximize


【解决方案1】:

您在 MSDN 论坛上发布了答案,但这里没有,所以在这里;

解决方法是在全屏时设置 ResizeMode=NoResize。似乎 AllowTransparency=True 仍然具有窗口的常规边框,但只是将其隐藏,因此当您最大化它时,它会尝试补偿该边框。但是如果你改变 ResizeMode,边框就会消失。

https://social.msdn.microsoft.com/Forums/vstudio/en-US/0b938537-c048-4122-8a2f-29d04d21f2df/allowtransparency-in-fullscreen?forum=wpf

【讨论】:

  • 你是对的。我做到了。当时我正在做一个项目,所以我也忽略了在这里添加它。我对此感到抱歉。然而,该解决方案实际上并非没有缺点。当您遇到 ResizeMode 时,我用来显示视频的 MediaElement 会重置,以便视频重新开始。这是一个完全不同的问题,所以我不会在这里深入探讨。 :)
【解决方案2】:

我的解决方案适用于:

AllowsTransparency="True"

WindowStyle="无"

您不能设置最大化,因为它会全屏显示。

if (window.Tag == null){

    window.Tag = window.Width + ";" + window.Height + ";" + window.Left + ";" +
                 window.Top;
    window.Width = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width;
    window.Height = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height;
    window.Left = 0;
    window.Top = 0;
    window.WindowState = WindowState.Normal;

} else {

    List<int> sizes = new List<int>(window.Tag.ToString().Split(';').Select(int.Parse));
    window.Width = sizes[0];
    window.Height = sizes[1];
    window.Left = sizes[2];
    window.Top = sizes[3];
    window.Tag = null;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-11
    • 2015-02-26
    • 1970-01-01
    相关资源
    最近更新 更多