如何为 Xamarin 表单标签添加边框?

How to add a border to your Xamarin Form Label?

Xamarin Forms 用户,您好,

我已经发现 Xamarin Froms 不立即支持标签上的边框。所以经过一些搜索仍然不知道如何让它成为可能。是否可以使用自定义渲染器添加边框?如果是这样,有人举个例子吗?如果没有,是否有人有任何其他开箱即用的想法来使这成为可能。

提前致谢

您可以在 Frame 元素中添加 Label,并为 Frame 设置 OutlineColor:

<Frame OutlineColor="Black">
    <Label Text="My Label With Frame" />
</Frame>

如果您想使用自定义渲染器,您应该为您想要支持的每个平台(即 Android、iOS、UWP、WinPhone)实现自定义渲染器

我的想法有点开箱即用,想出了使用 boxview 作为边框的想法。 这里有我编写的代码示例:

  <StackLayout x:Name="BasicInfo" Margin="10,10,10,5" Grid.Row="0" Grid.Column="0">
    <Label Text="Basic Info" FontSize="20"/>
    <BoxView Color="Black" WidthRequest ="100" HeightRequest="1"/>
     <Label x:Name="text1" />
     <Label x:Name="text2"/>
     <Label x:Name="text3"/>
     <Label x:Name="text4"/>  
  </StackLayout>

我还会添加一张它给我的结果的图片:

尽管已经有了答案,但我找到的解决方案允许您选择具体要显示的边框以及显示的数量。

我使用的一个修复方法是将需要边框的元素包装在 ContentView 中,为该 ContentView 提供背景颜色和填充。代码如下

声明了以下样式的资源字典

<Style TargetType="ContentView"
       x:Key="BorderContentView">
    <Setter Property="BackgroundColor"
            Value="Black" />
    <Setter Property="Padding"
            Value="1 2 1 3" />
    <!-- Tweak the values above to set your borders however you prefer -->
</Style>

在您的视图中,只需添加一个包装 ContentView 并为其添加样式

<ContentView Style="{DynamicResource BorderContentView}">
    <!-- Elements with a border here --> 
</ContentView>