拖动WPF窗口时使用拇指:是否可以使其透明?

3
我一直在测试Blu,发现可以拖动窗口。这个窗口是透明的。我试图用Thumb做同样的事情,但不知道如何使它透明。窗口的其余部分是透明的,但是Thumb不是。
有没有办法使Thumb透明,或者我应该使用其他技术?
我使用这个事件:
 private void DragThumb_DragDelta(object sender, System.Windows.Controls.Primitives.DragDeltaEventArgs e)
    {
        Canvas.SetLeft(this, Canvas.GetLeft(this) + e.HorizontalChange);
        Canvas.SetTop(this, Canvas.GetTop(this) + e.VerticalChange);
    }

谢谢你

2个回答

8

您可以使用不透明度属性使拇指控件变为不可见状态。

Opacity="1"(完全可见)

或者

Opacity="0"(不可见)

以下是我的应用程序示例:

        <Thumb Name="myThumb"
               Width="10"
               Height="10"
               DragDelta="onDragDelta"
               DragStarted="onDragStarted"
               DragCompleted="onDragCompleted"
               Margin="5"
               HorizontalAlignment="Right"
               Opacity="1">

        </Thumb>

5

不确定我是否正确理解了你的问题,但是要拖动一个wpf窗口,你只需要在表单上的一个组件的点击事件处理程序(或者表单本身)中键入以下内容:

this.DragMove();

您无需自己实现拖动功能。


更新:小例子:创建一个窗口,在其中放置一个按钮。将窗口的MouseDown和按钮的Click连接起来:

    private void Window_MouseDown(object sender, MouseButtonEventArgs e)
{
    this.DragMove();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
    MessageBox.Show("hey");
}

完美运行,您可以拖动窗口,按钮仍然起作用...


谢谢你的回答Tom。我认为那可能是解决方案。我尝试了在网格中使用mousemove + leftbutton按下的方法,它部分地起作用了。窗口的按钮停止工作了。你有一个可行的例子吗? - Artur Carvalho
做了一个快速测试,一切都在这里正常运行...请查看我的原始答案,其中包含一个小例子的更新。 - Tom Deleu
一件事是检测鼠标移动。另一件事是实际的拖动功能,特别是从DragDeltaEventArgs中获取的VerticalChangeHorizontalChange值。如果您需要处理拖动,则Thumb是正确的选择,将其不透明度设置为0,如另一个答案中所述。 - heltonbiker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接