我如何将径向渐变的X/Y坐标绑定到Blend中鼠标光标的X/Y坐标?

问题描述:

我正在关注如何在VS Blend中创建Windows Vista/7样式的玻璃按钮(我正在使用VS 2013社区版)的this教程。当涉及到按钮闪耀时,我想重新创建Windows 7如何处理任务栏上的按钮 - 例如,当鼠标位于按钮上方时,构成闪光的径向渐变本身始终位于光标的中心。我如何将径向渐变的X/Y坐标绑定到Blend中鼠标光标的X/Y坐标?

我的猜测,使这项工作是,我想要将渐变(x和y)的位置绑定到光标坐标。

如何在Blend中将径向渐变的坐标数据绑定到鼠标光标的x/y坐标?

一种方法是向视图添加依赖项属性,并将其挂钩到MouseMove事件。

依赖属性:

public static readonly DependencyProperty MousePointProperty = DependencyProperty.Register(
     "MousePoint", 
     typeof (Point), 
     typeof (MyWindow), 
     new FrameworkPropertyMetadata(new Point()); 

    public Point MousePoint 
    { 
     get { return (Point)GetValue(MousePointProperty); } 
     set { SetValue(MousePointProperty , value); } 
    } 

然后在鼠标移动处理器,更新了这一点。在XAML(这是一个矩形,应该是你的控制类似):

<Rectangle> 
    <Rectangle.Fill> 
     <RadialGradientBrush GradientOrigin="{Binding MousePoint}"/> 
    </Rectangle.Fill> 
</Rectangle> 
+0

如何揭露控制的该属性,这样家长可以绑定到它?属性本身存在于我想要重用的模板中,所以这与我想要做的事情有点反直觉...这意味着每次放置控件时,我都必须绑定到该属性上控制并实施您在此处提出的建议。我希望有更多的东西可以拖拽下去...... – Will 2015-04-02 16:57:59

+0

你是说MousePoint属性是在模板类上定义的? – Nzc 2015-04-03 08:40:17