한 가지 방법은 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에 대한 내 의견보기. 나는 '시각적'의 윤곽을 강조하고 싶다. 내가 생각한 것은 외곽선의 '경로'기하학을 얻고 그것을 단색과 애니메이션 불투명도로 채운 것입니다. 기초가 어떤 식 으로든 * 모든 *'비주얼 '의 윤곽을 그리는 것입니다. 'DropShadowEffect'를 시도하지 않았습니다. 나는 그림자가 아닌 오버레이 * 효과를 생성하는 것에 더 관심이 있습니다. – wpfwannabe