Как создать кнопку, которая изменяет размеры окна при перетаскивании в WPF? - PullRequest
3 голосов
/ 23 июня 2011

Я пытаюсь создать кнопку, которая изменяет размер окна при его перетаскивании, точно так же, как нижний правый угол окна.

Я пытался использовать события .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?

1 Ответ

4 голосов
/ 23 июня 2011

Для этого существует элемент управления: a Thumb :

Содержит события DragDelta, которые вы ищете.

EDIT:

чтобы настроить его визуализацию, вы можете установить ему стиль

<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>
...