Я хотел бы иметь холст, который поддерживает событие DragDelta. Моя первая идея, как это сделать, - создать ControlTemplate с большим пальцем. Но я не знаю, как это сделать правильно. Как я могу изменить XAML ниже, чтобы скомпилировать его, и как правильно установить обработчик событий DragDelta?WPF: Как установить поведение большого пальца на холсте?
<UserControl.Resources>
<ControlTemplate x:Key="Transparent">
<Rectangle Fill="Transparent"/>
</ControlTemplate>
<ControlTemplate x:Key="ThumbCanvas" TargetType="{x:Type Canvas}">
<Grid>
<Thumb x:Name="CanvasThumb" Template="{StaticResource Transparent}" DragDelta="CanvasThumb_DragDelta"/>
<ContentPresenter Content="{TemplateBinding Content}"/>
<!--error MC3011: Cannot find the static member 'ContentProperty' on the type 'Canvas'.-->
</Grid>
</ControlTemplate>
</UserControl.Resources>
Я предполагал, что если бы у меня просто был большой палец под холстом, чтобы холст получил событие мыши, а не большой палец. Нет? BTW, я не буду использовать большой палец для изменения размера, а просто для того, чтобы различать щелчок и перетаскивание на холст. – Qwertie
Оказывается, Canvas не принимает события мыши (и они проходят), если для фона не задано значение. К сожалению, стандартные события MouseDown, MouseUp, MouseMove работают некорректно для меня при подключении обработчиков к Thumb ... – Qwertie
Обновление: при прикреплении событий к Thumb мне приходится обрабатывать PreviewMouseDown и PreviewMouseMove вместо MouseDown и MouseMove, так как Thumb блокирует регулярные события. – Qwertie