Я искал несколько руководств по созданию пользовательских элементов управления в WinRT, и у меня есть вопрос.Когда использовать шаблонный контроль над UserControl?
Предположим, я хочу создать простой элемент управления, содержащий некоторые вещи, такие как сетка с изображением слева и несколько текстовых блоков справа.
Я имею в виду, что-то простое, как:
<Grid Height="100">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.3*"/>
<ColumnDefinition Width="0.7*"/>
</Grid.ColumnDefinitions>
<Image Source"/Assets/someRandomImage.png"/>
<StackPanel Grid.Column="1"
VerticalAlignment="Center">
<TextBlock Text="Some text"
Margin="10,0,10,0"
FontSize="24"
FontWeight="SemiLight"
TextTrimming="CharacterEllipsis"/>
<TextBlock Text="Some random description..."
Margin="10,5,10,0"
FontSize="18"
FontWeight="Light"
Foreground="Gray"
TextWrapping="Wrap"
TextTrimming="CharacterEllipsis"/>
</StackPanel>
</Grid>
Я бы создать UserControl с этим содержанием, так что я смог бы увидеть его в XAML Designer в то время как я работаю на своем пользовательском интерфейсе, и Я добавлю все свойства и свойства DependencyProperties в код UserControl.
Тогда я увидел, что другой подход будет заключаться в использовании элемента управления Template, поэтому мне нужно создать класс, который наследуется от класса Control, а затем использовать вышеуказанный код XAML в качестве шаблона и применить его к настраиваемому элементу управления и добавьте там всю остальную логику.
Конечно, мне также необходимо добавить свойство x: Name некоторым элементам UIElements внутри элемента управления, чтобы иметь возможность взаимодействовать с ними, но вы получаете эту идею.
Мне было интересно, можно ли использовать один из этих двух методов или лучше использовать его в частности, и почему? Кроме того, мне нравится использовать UserControls, так как я вижу их в окне конструктора, и вместо этого я не смогу сделать это с помощью шаблона, мне нужно будет запустить приложение и создать экземпляр элемента управления, чтобы увидеть, что это на самом деле выглядит.
Спасибо за вашу помощь, я думаю, что я не только один с этим сомнением, так что я надеюсь, что этот вопрос будет помогать другим, а также: D
Sergio
Вы добавляете функциональность в UserControl? Или просто измените способ отображения существующего элемента управления? Для последнего даже шаблон управления был бы достаточным http://www.wpftutorial.net/templates.html – treze
Я добавляю функциональность: обычно я создаю некоторые свойства, DependencyProperties для некоторых привязок и, возможно, анимацию и прочее. Что касается других функций, я обычно создаю ViewModel для UserControl, и я использую это для добавления методов и внутренних привязок. – Sergio0694
Еще одно примечание - вы можете видеть шаблонные элементы управления в проекционном представлении в VS или Blend, если у них нет никакой логики, которая нарушит проектный вид. Вам просто нужно использовать экземпляр вашего элемента управления в 'UserControl' /' Page', и он должен появиться. –