Я начинаю работать над элементами управления XAML в приложении UWP.
Я хочу создать несколько вариантов одного и того же элемента управления (какая-то библиотека пользовательского интерфейса), которые будут повторно использоваться в приложении, скажем, «Большая кнопка» и «Маленькая кнопка».
Есть ли какие-либо проблемы с производительностью, недостатки или лучший способ добиться персонализации элемента управления «пользовательский тэг»?
(Лично я нашел его более читаемым и менее подверженным ошибкам, когда каждый элемент управления был стилизован.)
Большое спасибо!
«Общий» способ, кажется, создает стили/шаблоны на основе кнопки, например:
Styles.xaml (ResourceDictionary)
<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 (Page)
<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>
Это чисто зависит. Если вы хотите изменить не только стиль, но и функциональность элемента управления, унаследованный способ управления лучше. Если это просто стиль, вы можете создавать и использовать/повторно использовать ключи стиля.
См. Обзор создания элементов управления.





Создание пользовательского элемента управления, изменение шаблона или изменение стиля существующего полностью зависит от ваших требований. В решении нет никаких «проблем с производительностью».
Если вы не собираетесь добавлять новый функциональность в элемент управления, нет особого смысла создавать еще один класс, подобный этому:
public sealed class MyBigButton : Button {}
Тогда вы можете просто создать собственный стиль или шаблон.
Дополнительные сведения см. в статье Журнал MSDN Джерри Никсона о том, как создавать настраиваемые элементы управления в XAML.
Недостатков в производительности нет. Все, что вы теряете, это простота. Думаю, проблем с читабельностью нет.