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

时间:2017-02-10 12:19:52

标签: c# xamarin.forms label border custom-renderer

Hello Xamarin表示用户,

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

提前谢谢

4 个答案:

答案 0 :(得分:15)

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

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

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

答案 1 :(得分:8)

我正在思考一下开箱即用,想出了使用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>

我还会添加一张给我的结果图片:enter image description here

答案 2 :(得分:1)

尽管已经有了答案,但我发现的解决方案使您可以选择要特别显示的边框以及显示的边框数量。

我使用的一种修复方法是在ContentView中包装需要边框的元素,为ContentView提供backgroundColour和padding。代码在下面

具有以下样式的资源字典

<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>

答案 3 :(得分:0)

将标签放在BoxView中并声明BoxView的border属性。