私はWPFにまったく慣れていないので、このほとんどを難しい(しかし楽しい)方法で学んでいます。HSVのようなカラーピッカーユーザーコントロールを作成しています。「セレクター」が楕円形の領域(実際には円)に限定されているため、使用する親指の動作を取得したいと思います。外に移動するときは、セレクターは横に固定され、まったく移動しないようにする必要があります。これが最も一般的な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の作成にまったく慣れていないので、私には思いつかなかった明らかな解決策があるかもしれません;)