我长时间搜索,很难在网上找到这样的例子。我已经看到了替代方法,但我想专门使用拇指。在尝试散列解决方案时,我无法正确/正常工作,因为我是WPF的新手。如果有人可以举例说明如何实施上述内容,我将不胜感激。
干杯
答案 0 :(得分:4)
Popup
并没有给你一个明显的移动方式;您只能相对于其展示位置放置它。然而,它确实为您提供了相对于放置目标的额外偏移量,并且足以将其移动到任何位置。
这是一个仅使用标记的工作解决方案,使用Markup Programming使用Popup
演示可拖动的Thumb
。有一个文本框,当文本框收到键盘焦点时会弹出一个弹出窗口。弹出窗口有一些文字和拇指。
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:p="http://markupprogramming.codeplex.com/markup/programming"
Height="300" Width="300">
<Grid>
<StackPanel>
<TextBox x:Name="textBox1" Width="200" Height="20"/>
</StackPanel>
<Popup Name="popup" PlacementTarget="{Binding ElementName=textBox1}"
IsOpen="{Binding IsKeyboardFocused, ElementName=textBox1, Mode=OneWay}">
<StackPanel Orientation="Horizontal">
<TextBlock Background="White" Text="Sample Popup content."/>
<Thumb Name="thumb" Width="20" Height="20"/>
</StackPanel>
<p:Attached.Operations>
<p:ScriptHandler Path="@FindElement('thumb').DragDelta">
@AssociatedObject.HorizontalOffset += @EventArgs.HorizontalChange;
@AssociatedObject.VerticalOffset += @EventArgs.VerticalChange;
</p:ScriptHandler>
</p:Attached.Operations>
</Popup>
</Grid>
</Window>