我一直在测试Blu,我注意到我可以拖动窗口。这个窗口是透明的。我尝试用拇指做同样的事情,但我不知道如何使其透明。窗口的其余部分是透明的,但拇指不是。
有没有办法让拇指透明,或者我应该使用其他技术?
我使用这个事件:
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);
}
谢谢你
您可以使用不透明度属性将拇指控件设为不可见。
不透明度=“1”(完全可见)
或
不透明度=“0”(不可见)
我的申请样本
<Thumb Name="myThumb"
Width="10"
Height="10"
DragDelta="onDragDelta"
DragStarted="onDragStarted"
DragCompleted="onDragCompleted"
Margin="5"
HorizontalAlignment="Right"
Opacity="1">
</Thumb>
不确定我是否正确理解您的问题,但是要拖动 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");
}
工作完美,可以拖动窗口,按钮继续工作...
您可以选择将Thumb控件的控件模板设置为“透明”,如下代码片段:
<Canvas Background="LightGray">
<Grid Canvas.Left="451" Canvas.Top="148" Width="120" Height="120" Background="Red">
<Thumb DragDelta="Thumb_DragDelta" Cursor="SizeAll"
DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Grid}}">
<Thumb.Template>
<ControlTemplate>
<Grid>
<Ellipse Fill="Black" Width="10" Height="10" HorizontalAlignment="Left" VerticalAlignment="Top"/>
<Rectangle Fill="Transparent" />
</Grid>
</ControlTemplate>
</Thumb.Template>
</Thumb>
<Ellipse Fill="Pink" Height="100" Width="100" IsHitTestVisible="False" />
</Grid></Canvas>
DragDelta 事件:
private void Thumb_DragDelta(object sender, System.Windows.Controls.Primitives.DragDeltaEventArgs e)
{
var thumb = (System.Windows.Controls.Primitives.Thumb)sender;
var grid = (Grid)(thumb.DataContext);
if (grid == null) return;
var left = Canvas.GetLeft(grid);
var top = Canvas.GetTop(grid);
Canvas.SetLeft(grid, left + e.HorizontalChange);
Canvas.SetTop(grid, top + e.VerticalChange);
}