我對WPF很新,所以我正在學習這個艱難(但有趣)的方式。我正在構建一個類似HSV的colorPicker usercontrol,並希望獲得這種行爲,因爲「選擇器」僅限於橢圓區域(實際上是圓形),所以我使用的是拇指。當移到外面時,選擇器應該靠在一邊而不能移動。我相信這是最常見的GUI行爲,所以這就是它的行爲。隨意建議一個更好的行爲!限制拇指橢圓區域
是否有一個共同的,已知的和推薦的解決方案呢,還是每個人都需要每次重新發明車輪?
如何解決這個問題的好主意?
代碼隱藏:
public partial class HSVColorPicker : UserControl
{
public HSVColorPicker()
{
InitializeComponent();
}
void onDragDelta(object sender, DragDeltaEventArgs e)
{
Canvas.SetLeft(thumb, Canvas.GetLeft(thumb) + e.HorizontalChange);
Canvas.SetTop(thumb, Canvas.GetTop(thumb) + e.VerticalChange);
}
}
XAML:
<Grid>
<Canvas x:Name="canvas">
<Image x:Name="wheel" Source="colorwheel.png" Width="300" Margin="5,5,0,0"/>
<Thumb Name="thumb" DragDelta="onDragDelta" Canvas.Left="104" Canvas.Top="68" Template="{StaticResource thumbTemplate}" />
</Canvas>
</Grid>
雖然我在這裏,大拇指總是拖動光標背後,有另一種方式來創建這個?正如我所說,我是新來的WPF和GUI製作,所以也許有明顯的解決方案,我沒有想到;)
謝謝,雖然它不會在光標在外邊不動,但你確實做了很大一部分工作!如果光標離開並重新進入,拇指和光標也會分開,所以我會進行一些調試並接受您的答案。完成後會發布我的最終解決方案。 – Bob 2012-04-14 11:29:35