XAML 重用特定的 UI 元素

XAML reuse specific UI elements

使用 Xamarin,我有一个小的 UI 元素作为内容分隔符:

<BoxView StyleClass="contentDivider"
   HeightRequest="2"
   WidthRequest="1000"
   Margin="3, 0"/>

因为我多次使用它,所以我希望能够将代码写下来一次,然后重用该代码——就像 class 及其实例 (DRY) 一样。很可能我是一只盲蝙蝠,无法找到它是如何完成的。那么,如何重用 XAML 个元素?

您可以使用 ContentViews (https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/controls/layouts#contentview) 执行此操作,这可能更适合较大的重用案例(在 ContentView 中使用更多 XAML)。

然而,对于像您这样的小型单个元素示例,您真的可以考虑使用全局样式 (https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/styles/xaml/application),它看起来就像您已经拥有的 StyleClass="contentDivider",如只要您只想覆盖单个元素的属性(例如您的 BoxView)。

只需将 HeightRequest、WidthRequest 和 Margin 添加到您的样式中即可。

<Style x:Key="contentDivider" TargetType="BoxView">
    <Setter Property="HeightRequest" Value="20" />
    <Setter Property="WidthRequest" Value="20" />
    <Setter Property="Margin" Value="0,99,0,0" />
    ... etc
</Style>