Я искал несколько руководств по созданию пользовательских элементов управления в WinRT, и у меня есть вопрос.
Скажем, я хочу создать простой элемент управления, содержащий некоторые вещи, такие как сетка с изображением слева и несколько текстовых блоков справа.
Я имею в виду, что-то простое:
<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
Серхио