2013-02-06 47 views
8

有時候,Border控制或Rectangle控制將滿足我的需要。一個例子是當我實現ControlTemplate時,我已經應用了分層技術(即在網格中堆疊控件),並且我不需要將不同的RadiusX或RadiusY應用於角落。但是,在設計這種ControlTemplates時,有時候我會使用幾個這樣的Borders或Rectangles層。因此,我意識到我應該認識到哪個控件對應用程序的性能影響最小。我發現他們的繼承層次在FrameworkElement之後有所不同。而且我還注意到Border是一個裝飾器控件(我與裝飾器一起工作,但我不確定它們相對於其他控件的表現如何)。有人可以將光線照射到WPF Rectangle vs Border:哪個更適合性能?

1)我們如何能夠根據特定的繼承層次結構來得出關於控件性能影響的一般結論?

2)裝飾器,如邊框,如何執行相對於其他控件?

3)特別是關於邊框和矩形,它表現更好?

+0

說實話,我從來沒有與邊界或矩形的性能問題。 –

回答

0

我的經驗是,WPF邊框的重量更輕,但更重要的是 - 它們代表了不同的需求,儘管它們在屏幕上通常呈現相同的效果。如果我編寫的東西包含矩形作爲它的一部分,那麼矩形通常是合適的。如果我想強調屏幕上的某些內容,或者指出對象具有某種不同的狀態 - 那麼我會使用邊框。我經常會將邊框的顏色,粗細或可見性綁定到模型的狀態屬性(或者適用於您的案例),但本質區別在於邊框不是對象的一部分。這是一種讓對象脫穎而出或可見的方式。

或者,如果它是一些已經組成的東西,就像一個TextBox,並且我在它周圍添加了一些顏色 - 通常是一個邊框。

通過記住這個區別,它可以幫助您的XAML樹更好地理解您,併爲您提供稍後易於維護的代碼。

相關問題