iOS中的右对齐标签

时间:2017-06-25 16:31:56

标签: xamarin.forms label text-alignment

我正在使用Xamarin Forms。我的一些标签是经过右调整的(即TextAlignment = TextAlignment.End),最后有一个空白字符,以便在右端留出一点余量。这适用于Android设计。但是,看起来iOS只是忽略了尾随空格。

左侧调整标签的领先空间可在两个平台上正常运行。

我尝试了除"\u0020"以外的其他空白字符:"\u00A0""\u2000""\u202F"等.iOS忽略了它们。

我无法使用Label.Margin,因为我的标签有不同的BackgroundColor,整个想法是在文本的右侧留一点这种颜色的空间。 Margin被认为是在标签之外,因此背景颜色不会延伸到那里。

将标签放在ContentView内,Padding是唯一的解决方案吗?

1 个答案:

答案 0 :(得分:0)

答案

你是正确的:我们需要增加标签Padding,而Margin不会完成此任务!

问题是Label没有Padding属性。

我建议在包含BackgroundColor的布局中设置PaddingLabel

  1. 从标签
  2. 中删除BackgroundColor
  3. BackgroundColor分配给布局
  4. 设置布局的Padding
  5. var stackLayout = new StackLayout 
    {
        Children = { rightJustifiedLabel }, 
        BackgroundColor = Color.Red, 
        Padding = new Thickness(0, 0, 5, 0)
    }
    

    示例代码

    public class App : Application
    {
        public App()
        {
            MainPage = new LabelPage();
        }
    }
    
    public class LabelPage : ContentPage
    {
        public LabelPage()
        {
            var rightJustifiedLabel = new Label
            {
                Text = "Right-Justified Label",
                HorizontalTextAlignment = TextAlignment.End,
            };
    
            Content = new StackLayout
            {
                Children = { rightJustifiedLabel },
                BackgroundColor = Color.Red,
                Padding = new Thickness(0, 0, 5, 0),
                HorizontalOptions = LayoutOptions.Center,
                VerticalOptions = LayoutOptions.Center
            };
        }
    }