一つの方法は、MSDN SimpleCircleAdorner exampleに見られるようUIElement
のOnRender
をオーバーライドすることです。
// A common way to implement an adorner's rendering behavior is to override the OnRender
// method, which is called by the layout system as part of a rendering pass.
protected override void OnRender(DrawingContext drawingContext)
{
Rect adornedElementRect = new Rect(this.AdornedElement.DesiredSize);
// Some arbitrary drawing implements.
SolidColorBrush renderBrush = new SolidColorBrush(Colors.Green);
renderBrush.Opacity = 0.2;
Pen renderPen = new Pen(new SolidColorBrush(Colors.Navy), 1.5);
double renderRadius = 5.0;
// Draw a circle at each corner.
drawingContext.DrawEllipse(renderBrush, renderPen, adornedElementRect.TopLeft, renderRadius, renderRadius);
drawingContext.DrawEllipse(renderBrush, renderPen, adornedElementRect.TopRight, renderRadius, renderRadius);
drawingContext.DrawEllipse(renderBrush, renderPen, adornedElementRect.BottomLeft, renderRadius, renderRadius);
drawingContext.DrawEllipse(renderBrush, renderPen, adornedElementRect.BottomRight, renderRadius, renderRadius);
}
}
あなたは、あなたが、このようBezierSegment
としてLineSegment
セグメントで構成パスを構築することができますpath geometriesを利用する必要があります典型的な長方形または角丸長方形の外堅牢なソリューションを提供したい場合は 、またはArcSegment
のように適切なパスを作成してUIElement
の周りに適切なパスを作成します。
一方、長方形または丸みのある四角形であれば、OnRender
オーバーライド内でDrawingContext.DrawRectangle
とDrawingContext.DrawRoundedRectangle
をそれぞれ使用できます。
ハイライトをどのように見えるかのサンプルを提供できますか? 'DropShadowEffect'を試しましたか? –
Aaronへの私のコメントを参照してください。私は「ビジュアル」の概要を強調したいと思います。私が考えていたのは、アウトラインの「Path」ジオメトリを取得して、それを単色とアニメーション不透明でいっぱいにしました。何らかの理由で*あらゆる*「Visual」の輪郭になっています。私は 'DropShadowEffect'を試していません。私は、影ではなく*オーバーレイ*効果のようなものを作り出すものにもっと興味を持っています。 – wpfwannabe