Ser*_*694 21 xaml windows-runtime win-universal-app uwp uwp-xaml
我正在寻找一些关于如何在WinRT中创建自定义控件的教程,我有一个问题.
假设我想创建一个包含一些东西的简单控件,比如左边是图像的Grid,右边是几个TextBlocks.
我的意思是,简单的事情:
<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>
Run Code Online (Sandbox Code Playgroud)
我会用这个内容创建一个UserControl,所以当我正在处理它的UI时,我将能够在XAML Designer中看到它,并且我将在UserControl代码中添加所有Properties和DependencyProperties.
然后我看到另一种方法是使用Template控件,所以我必须创建一个继承自Control类的类,然后使用上面的XAML代码作为模板并将其应用于自定义控件并添加所有其余的逻辑在那里.
当然,我还必须将x:Name属性添加到控件中的一些UIElements以便能够与它们进行交互,但是你明白了.
我想知道,使用这两种方法中的任何一种方法都可以,或者更好地使用一种方法,为什么呢?此外,我喜欢使用UserControls,因为我可以在Designer窗口中看到它们,而我无法使用模板执行此操作,我必须运行应用程序并创建控件的实例以查看它是什么实际上看起来像.
感谢您的帮助,我想我不是唯一一个有这种疑问的人,所以我希望这个问题能够帮助其他人:D
塞尔吉奥
Fil*_*kun 25
用户控件
UserControl
使用Visual Studio或Blend创建A 会更容易,为您提供体面的设计视图支持.如果您选择采用MVVM模式,则此类视图通常以相应的视图模型为后盾.
一个问题UserControl
是,虽然您可以在应用程序的多个位置重复使用它 - 但很难对应用程序中不同位置的外观或行为进行轻微调整,因为它不使用模板,UI树是在构造函数中加载.
自定义控制
custom control
或某些情况下templated control
最适合用于单一目的的一小部分UI - 它可视化单个特定类型的信息.Button
,ToggleButton
,ContentControl
,Slider
,TextBox
或ListView
可添加到或替代它的逻辑.在有些情况下,虽然当它是有道理的,使一个从无到有,继承"虚拟抽象" Control
,ItemsControl
,RangeBase
,Shape
甚至FrameworkElement
(最后两个没有模板).Collapsed
,Visible
从而允许延迟加载UI的部分以获得性能改进.自定义面板
A custom panel
是另一种类型的UI元素,允许自定义它如何布置其子元素.
归档时间: |
|
查看次数: |
8484 次 |
最近记录: |