xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/interactivedesigner/2006"
mc:Ignorable="d"
x:Class="PaintDrawExamples.DynamicClipping"
Width="640" Height="480">
//File:Window.xaml.cs
using System;
using System.IO;
using System.Net;
using System.Windows;
using System.Windows.Input;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Navigation;
namespace PaintDrawExamples
{
public partial class DynamicClipping
{
public DynamicClipping()
{
this.InitializeComponent();
this.Canvas.VerticalAlignment = VerticalAlignment.Center;
this.Canvas.HorizontalAlignment = HorizontalAlignment.Center;
CompositionTarget.Rendering += CompositionTarget_Rendering;
}
private void CompositionTarget_Rendering(object sender, EventArgs e)
{
Point mousePos = Mouse.GetPosition(this.Canvas);
Geometry clippingRegion = this.Canvas.Clip;
TranslateTransform newPos = new TranslateTransform();
newPos.X = mousePos.X - (this.Canvas.Width / 2);
newPos.Y = mousePos.Y - (this.Canvas.Height / 2);
clippingRegion.Transform = newPos;
}
}
}