展开全部
1、新建一个e5a48de588b63231313335323631343130323136353331333332643230 Window,添加一个Grid
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
2、添加类 FunnyBrush,这是我自己写着玩的public class FunnyBrush
{
public static void Draw(Panel panel)
{
var brush = new RadialGradientBrush();
var center = new Point(panel.ActualWidth / 2d, panel.ActualHeight / 2d);
brush.Center = center;
brush.GradientOrigin = center;
brush.RadiusX = center.X;
brush.RadiusY = center.Y;
brush.MappingMode = BrushMappingMode.Absolute;
Console.WriteLine(center);
var stops = new GradientStopCollection();
stops.Add(new GradientStop(Colors.Yellow, 0d));
stops.Add(new GradientStop(Colors.Red, 0.25d));
stops.Add(new GradientStop(Colors.Blue, 0.75d));
stops.Add(new GradientStop(Colors.LimeGreen, 1d));
brush.GradientStops = stops;
panel.Background = brush;
var win = FindParent(panel) as FrameworkElement;
if (win == null) win = panel;
win.MouseMove += (obj, args) =>
{
brush.GradientOrigin = args.GetPosition(panel);
};
win.SizeChanged += (obj, args) =>
{
var pt = new Point(panel.ActualWidth / 2d, panel.ActualHeight / 2d);
brush.Center = pt;
brush.RadiusX = pt.X;
brush.RadiusY = pt.Y;
};
}
// 这个方法来自
// http://blog.csdn.net/fallincloud/article/details/6960255
public static T FindParent(DependencyObject d) where T : DependencyObject
{
DependencyObject parent = d;
while (parent != null)
{
parent = VisualTreeHelper.GetParent(parent);
if (parent != null && (parent is T))
{
return parent as T;
}
}
return parent as T;
}
}
3、在 Window_Loaded 事件中添加代码FunnyBrush.Draw(panel);



