【问题标题】:Adding buttons over windows border在窗口边框上添加按钮
【发布时间】:2012-02-13 11:18:48
【问题描述】:

我怎样才能在窗口边框上放置按钮。我想做的是在 c# 中的 WPF 应用程序中的边框上放置关闭和最小化按钮。任何人都可以告诉我该怎么做。

【问题讨论】:

标签: wpf border


【解决方案1】:

WPF 上下文中的“边框”一词可能有两种含义。它可能是 元素,或者您的意思可能是定义 元素的区域。是哪一个?

如果您只想在 元素上添加按钮,只需将其作为元素的内容即可。如果您有多个按钮,则需要有一个面板(例如 )。

您不能在 元素的客户区之外绘制任何东西。要在窗口区域之外有按钮,您应该在另一个窗口(例如“工具窗口”)中包含您想要的按钮。您很可能希望这个工具窗口没有标题和不可调整大小的边框:WindowStyle="None" ResizeMode="NoResize"。然后,保持工具窗口位置与主窗口同步(最好的方法是将 Windows 的左右属性绑定到公共数据上下文中的左右属性。不要忘记将绑定模式声明为 BothWay )。

编辑(遵循@Sarita 的说明):
所以它是第一个。内容是指 XML 元素的主体。从技术上讲,它是 Border 元素的 Child 属性。以下两个 XAML 是等效的:

<Border Background="Green" Padding="5">
    <StackPanel>
        <Button>A</Button>
        <Button>B</Button>
    </StackPanel>
</Border>


<Border x:Name="Bord" Background="Green" Padding="5">
    <Border.Child>
        <StackPanel>
            <Button>A</Button>
            <Button>B</Button>
        </StackPanel>
    </Border.Child>
</Border>

【讨论】:

  • 感谢您提供宝贵的帮助.
  • 我之前尝试过,但问题是我无法将按钮定位在它们应该在的确切位置。我已将堆栈面板的方向更改为水平。同时设置边距属性一个按钮将其放置在正确的位置,另一个按钮也相对于第一个按钮移动。
  • @Sarita,您的定位问题并非特定于 Border,而是 StackPanel。在 StackPanel 中,按钮以水平或垂直顺序依次排列。还有其他面板,例如 Grid 和 Canvas。如果您想控制精确定位,请尝试使用带有 Top 和 Left 属性的 Canvas 面板。
  • 我是 WPF 新手,所以帮了大忙,它正在工作。谢谢@Uri。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-22
  • 1970-01-01
  • 2018-03-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多