0

我想要一个支持 DragDelta 事件的画布。我对如何做到这一点的第一个想法是制作一个包含拇指的 ControlTemplate。但我不知道如何正确地做到这一点。如何更改下面的 XAML 以使其编译,以及安装 DragDelta 事件处理程序的正确方法是什么?

<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>
4

1 回答 1

1

任何面板派生控件都没有模板属性,因为它们没有可见组件。

您可以在 UserControl 中使用 Thumb 控件,就像您正在做的那样,只需根据 Thumb 的增量调整 UserControl 的高度/宽度。为了使这项工作正常,您需要获取相对于用户控件父级的鼠标位置,否则将无法正常工作。即:e.GetLocation(this.Parent);

您可能也应该调整该拇指上的高度/宽度。将光标也设置在它上面是个好主意。

于 2009-05-12T15:59:52.460 回答