我开始在UWP App中处理XAML控件。
我想为同一控件(某种类型的UI库)创建多个变体,这些变体将在应用程序中重用,比如说“大按钮”和“小按钮”。
在实现“自定义标记名”控件个性化方面是否存在任何性能问题,缺点或更好的方法?
(我个人发现,一旦对每个控件进行样式化,它的可读性就会更高,出错的可能性也会更少。)
非常感谢!
“通用”方式似乎是基于Button创建样式/模板的,就像这样:
Styles.xaml(资源词典)
<Style x:Key="MyBigButtonStyle" TargetType="Button">
<Setter Property="FontSize" Value="36"/>
</Style>
<Style x:Key="MySmallButtonStyle" TargetType="Button">
<Setter Property="FontSize" Value="10"/>
</Style>
然后声明控件,如下所示:
MyView.xaml(页面)
<Button Style="{StaticResource MyBigButtonStyle}">My Big Button</Button>
<Button Style="{StaticResource MySmallButtonStyle}">My Small Button</Button>
“自定义标记名”方式,为了便于阅读和简化(使用custom作为正确的名称空间用法):
MyCustomButtons.cs
namespace MyApp.MyCustomComponents
{
public sealed class MyBigButton : Button {}
public sealed class MySmallButton : Button {}
}
Styles.xaml
<Style Target="custom:MyBigButton">
<Setter Property="FontSize" Value="36"/>
</Style>
<Style Target="custom:MySmallButton">
<Setter Property="FontSize" Value="10"/>
</Style>
MyView.xaml
<custom:MyBigButton>My Big Button</custom:MyBigButton>
<custom:MySmallButton>My Small Button</custom:MySmallButton>
答案 0 :(得分:1)
创建自定义控件,重新模板化还是对现有控件进行样式化完全取决于您的要求。该决定不涉及“性能问题”。
如果您不打算向控件添加任何新的功能,则创建这样的另一个类就没有多大意义:
add_filters('editable_roles', function ($roles) {
$roles = array_reverse($roles);
return $roles;
});
然后,您还可以简单地创建自定义样式或模板。
有关更多信息,请参阅Jerry Nixon's MSDN Magazine文章,了解如何在XAML中创建自定义控件。