使用Adorner顯示WPF控制項的邊界點

2021-08-31 23:36:46 字數 1691 閱讀 7168

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!

當我們拖動wpf控制項時,我們為了更清楚地需要顯示控制項,一般我們會在wpf控制項所圍成的矩形區域的四個邊界點上作乙個特殊的記號(比如圓點)。如下圖:

在winform中,我們一般都是先找到控制項所包圍的矩形區域,然後畫出四個邊界點。那麼,在wpf,如何顯示這四個邊界點呢?

答案是使用adorner。adorner是繼承自frameworkelement的抽象類:

publicabstractclassadorner:frameworkelement

首先,我們建立乙個circleadorner類,它繼承自adorner:

using system;

using system.windows;

using system.windows.documents;

using system.windows.media;

namespace brawdraw.com.wpf

protected override void onrender(drawingcontext drawingcontext)

}}上面這個類的作用是對相應控制項的「附加繪製」,它畫出控制項的四個頂點。這裡的onrender相當於gdi+中的onpaint。

下面我們對乙個textbox,乙個包含於stackpanel中的button和textbox, 以及包含於canvas中的path進行「附加繪製」。

先看看xaml**:

// window1.xaml

"xmlns:x=""   

title="circleadornerdemo" loaded="windowloaded" height="464" width="625"

>

下面是控制**:

// window1.xaml.cs

using system;

using system.windows;

using system.windows.controls;

using system.windows.data;

using system.windows.documents;

using system.windows.media;

using system.windows.shapes;

using system.collections;

namespace brawdraw.com.wpf

private void windowloaded(object sender, routedeventargs e)

foreach (uielement toadorn in mycanvas.children)}}

}注意:這裡使用adornerlayer.add(new circleadorner(uielement))方法來完成這種附加。

給我老師的人工智慧教程打call!

WPF之ControlTemplate控制項模板

controltemplate 類 指定可視結構和行為方面 control 可以跨多個控制項例項共享。如下所示 button style 設定 controltemplate 的 button property overridesdefaultstyle value true property te...

WPF封裝簡單的ImageButton控制項

1 imagebutton自定義控制項類 public class ucimagebutton button region properties public static dependencyproperty normalimageproperty dependencyproperty.regis...

WPF文字顯示屬性

layoutroot background white fontsize 字型大小 foreground 文字前景色 text 資訊顯示控制項示例 textblock margin 10,5,0,0 fontsize 18 fontweight bold foreground ffbe4d4d te...