wpf控件-wpf矩形与边框:哪一个对性能更好



有时Border控件或Rectangle控件都能满足我的需求。一个例子是,当我实现ControlTemplate时,我已经在应用分层技术(即在网格中堆叠控件),并且我不需要将不同的RadiusX或RadiusY应用于角。

然而,在设计这样的ControlTemplates时,有时我会使用几个这样的Borders或Rectangles层。因此,我意识到我可能应该知道哪种控制对应用程序的性能影响最小。我看到它们的继承层次结构在FrameworkElement之后出现了分歧。我还注意到Border是一个Decorator控件(我曾与Decorator合作过,但我不确定它们相对于其他控件的表现)。有人能揭露吗

1) 我们如何能够根据特定的继承层次结构得出一些关于控件性能影响的一般结论?

2) 相对于其他控件,装饰器(如Border)是如何执行的?

3) 特别是关于边框和矩形,哪一个表现更好?

根据我的经验,WPF边框的重量要轻一点,但更重要的是,它们代表了某种不同的需求,尽管它们在屏幕上的呈现方式通常相同。如果我正在创作一个包含矩形的东西,那么矩形通常是合适的。如果我想在屏幕上强调一些东西,或者表明一个物体有一些不同的状态,那么我会使用边界。我经常将该边界的颜色、厚度或可见性绑定到模型的状态属性(或在您的情况下适用的任何属性),但本质区别在于边界不是对象的一部分。这是一种使物体突出或可见的方式。

或者,如果它是一些已经合成的东西,比如TextBox,我在它周围添加了一些颜色——那通常是一个边界。

通过记住这一区别,它可以帮助XAML树更好地为您提供意义,并为您提供以后更易于维护的代码。

最新更新