我制作了一个定制的拇指,它继承自Thumb类。
Farms_points_sp <- SpatialPoints(Farm_points, proj4string = proj4string(NZ))
counts <- poly.counts(Farms_points_sp, NZ)
我希望用户在鼠标悬停时进行缩放,然后在删除悬停时返回正常状态。我已经在App.xaml中写了这个,以便它可以应用于Canvas区域中的任何拇指。
public class MyThumb : Thumb
{
//Properties
//Constructors
...
...
}
但这不起作用。拇指没有缩放。我做错了什么?
答案 0 :(得分:1)
目前,拇指的样式仅适用于具有Style
属性设置的对象:
<Thumb Style="{StaticResource MyThumb}" />
或
<local:MyThumb Style="{StaticResource MyThumb}" />
要使用自定义拇指控件,您必须将包含的命名空间(此处名为local)添加到元素(通常是文档的根元素,但也可以是其他任何元素),如下所示:
<Window ...
xmlns:local="clr-namespace:WpfApp1" />
“WpfApp1”必须由您的命名空间重新定位。这里的控件位于应用程序的主命名空间中。如果控件将存在于子命名空间“WpfApp1.Controls”中,则必须编写xmlns:local="clr-namespace:WpfApp1.Controls"
。 local
可以使用您喜欢的任何名称(在新创建的页面,用户控件中......)本地引用创建的元素所在的命名空间,因此您可能需要向文件das添加另一个名称空间声明如上所述。另外,上面的内容也适用于App.xaml,你可以在其中添加样式(或者基本上你想在xaml中使用控件的任何其他文件)。
x:Key
属性仅定义包含样式的资源字典中样式的键。
如果您希望样式默认应用于这两种类型,您可以为Thumb
对象创建样式,并为MyThumb
对象创建基于前者的样式(如果您只是想要样式要应用于所有MyThumb
个对象,您可以省略前者并删除后一种样式的BasedOn
属性:
<Style TargetType="Thumb">
<!-- Your setters and other stuff -->
...
</Style>
<Style TargetType="local:MyThumb" BasedOn="{StaticResource {x:Type Thumb}}">
<!-- Additional setters and other stuff -->
...
</Style>
注意:在这种情况下,没有一个样式有一个键。