저는 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