【问题标题】:Right align WPF window title右对齐 WPF 窗口标题
【发布时间】:2009-10-28 06:15:26
【问题描述】:

我目前正在创建一个 WPF Exception Window,其风格与 MessageBox(静态显示方法)非常相似。在尝试类似地 Style 它时,我创建了一个 ExceptionWindowOptions 枚举,其中包含值 RightAlign

RightAlign 标志在MessageBox 类中被标记时,窗口标题向右对齐(在控制框旁边(最小化、最大、关闭)),所以我试图模拟这种行为.

我进行了尽可能多的调查,但找不到 WPF 解决方案。

我熟悉与本机方法的互操作,因为我将 GetWindowLongSetWindowLong 用于 RtlReading 选项,但我还没有找到任何东西来更改窗口标题的位置。

感谢任何帮助。

【问题讨论】:

  • 如果你已经在做这样的事情......让它比 MessageBox 更好,而不是一个巨大的丑陋枚举,添加一个布尔参数 isRightToLeft...... 并保持这种方法。
  • 还有许多其他选项可以设置(以及通过按位操作进行多重设置)。我的意图是尽可能多地模拟 MessageBox 的外部接口,以增加熟悉度。

标签: c# .net wpf interop styles


【解决方案1】:

看看来自 Pavan Podila 的 FluidKit library。特别是,您可能对 GlassWindow 感兴趣。这里的主要思想是您从头开始覆盖窗口样式。当然,这需要您为不同的主题自定义样式,但至少这是一个解决方案,如果您没有找到其他任何东西。

【讨论】:

    【解决方案2】:

    我相信你想设置Window.FlowDirection。但是,这将为窗口中的所有内容设置它,包括按钮、文本框等,因此,如果您只想制作标题栏 RTL,则可以让窗口包含一个面板,将其重置为 LTR(或其他任何内容) )。

    确认- 对此进行测试,也许不是。貌似是RTL的标题栏,包括控制框和图标!

    【讨论】:

    • 是的,正如您所暗示的,这不是一个很好的解决方案。它让我走错了路,所以我投了反对票
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-04
    • 2017-05-26
    • 2014-04-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-02
    • 2021-05-29
    相关资源
    最近更新 更多