2015-04-02 132 views
2

我正在關注如何在VS Blend中創建Windows Vista/7樣式的玻璃按鈕(我正在使用VS 2013社區版)的this教程。當涉及到按鈕閃耀時,我想重新創建Windows 7如何處理任務欄上的按鈕 - 例如,當鼠標位於按鈕上方時,構成閃光的徑向漸變本身始終位於光標的中心。我如何將徑向漸變的X/Y座標綁定到Blend中鼠標光標的X/Y座標?

我的猜測,使這項工作是,我想要將漸變(x和y)的位置綁定到光標座標。

如何在Blend中將徑向漸變的座標數據綁定到鼠標光標的x/y座標?

回答

3

一種方法是向視圖添加依賴項屬性,並將其掛鉤到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