17

您好 Xamarin Forms 用户,

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

先感谢您

4

3 回答 3

28

您可以添加一个LabelFrame元素,并OutlineColor设置Frame

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

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

于 2017-02-10T12:38:38.530 回答
12

我正在考虑一些开箱即用的想法,并想出了使用 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>

我还将添加它给我的结果图片:在此处输入图像描述

于 2017-02-10T13:23:15.877 回答
2

尽管已经有了答案,但我找到的解决方案允许您选择您特别想要显示的边框以及显示多少。

我使用的一个修复方法是将需要边框的元素包装在 ContentView 中,给 ContentView 一个 backgroundColour 和一个填充。代码如下

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

<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>
于 2018-11-08T14:44:59.390 回答