【问题标题】:How to create a button which resizes window when dragged in WPF?如何在WPF中拖动时创建一个调整窗口大小的按钮?
【发布时间】:2011-09-21 00:49:51
【问题描述】:

我正在尝试制作一个在拖动窗口时调整窗口大小的按钮,就像窗口的右下角一样。

我尝试使用 .MouseMove 和 .MouseDown 事件,但它不起作用。这是我的代码示例:

void ButtonResize_MouseMove(object sender, MouseEventArgs e)
{
    if (e.LeftButton == MouseButtonState.Pressed)
    {
        Point pos = e.GetPosition(Window);
        Window.Width += (pos - MousePos_OLD).X;
        Window.Height += (pos - MousePos_OLD).Y;
    }

    MousePos_OLD = e.GetPosition(Window);
}

我也尝试过使用 MouseDown 事件,并且 MouseMove 事件负责更新鼠标位置,但没有...

那么我如何在 WPF 中做到这一点?

【问题讨论】:

  • 只是为了确保:不适合您使用滑块?
  • @Till No. 按钮需要非常小,否则程序的设计会很丑。

标签: c# wpf button resize window


【解决方案1】:

为此存在一个控件:Thumb:

它包含一个事件 events DragDelta 这是您搜索的内容。

编辑:

要自定义他的可视化,您可以为他设置样式

<Style x:Key="ThumbStyle" TargetType="{x:Type Thumb}" >
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Thumb}">
                    <Border BorderBrush="Black" BorderThickness="1" Background="Transparent"></Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
</Style>

【讨论】:

  • 不幸的是,它缺少一个基本的东西:内容。我不能在里面放任何东西,甚至是文字。
  • 您可以通过 Style 设置 ControlTemplate 来控制他的可视化
猜你喜欢
  • 2014-03-09
  • 2012-01-28
  • 2016-02-07
  • 2018-10-06
  • 1970-01-01
  • 2012-11-22
  • 2016-01-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多