【问题标题】:StackLauout Label text alignment in xamarin formsXamarin 表单中的 StackLauout 标签文本对齐方式
【发布时间】:2018-04-14 14:13:42
【问题描述】:

这是我的示例代码

如何根据截图中的说明修复 label1 下方的 label2 过多文本

var label1 = 新标签() { Text = "消息:", 最小宽度请求 = 100, TextColor = 颜色.红色, Horizo​​ntalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.StartAndExpand };

        var Label2 = new Label()
        {
            Text = "Message message message message message",
            TextColor = Color.Gray,
            HorizontalOptions = LayoutOptions.StartAndExpand,
            VerticalOptions = LayoutOptions.StartAndExpand,
            LineBreakMode = LineBreakMode.WordWrap
        };

        var stack = new StackLayout()
        {
            Margin = new Thickness(20, 5, 20, 5),
            Orientation = StackOrientation.Horizontal,
            VerticalOptions = LayoutOptions.FillAndExpand,
            HorizontalOptions = LayoutOptions.StartAndExpand,

            Children =
            {
                label1, Label2
            }

        };

        var mainStack = new StackLayout()
        {
            Spacing = 0,
            Children =
            {
                stack
            }
        };

【问题讨论】:

  • 尝试使用Xaml进行设计
  • 我的应用程序设计完全是 C# 而不是 Xaml。对这个问题有什么建议吗? @Idris 堆栈

标签: xamarin xamarin.forms


【解决方案1】:

您只能通过一种方法使用格式化文本来完成此操作。您只需要一个标签即可:

var label1 = new Label ();
var fs = new FormattedString ();
fs.Spans.Add (new Span { Text="Message:", ForegroundColor = Color.Red});
fs.Spans.Add (new Span { Text="Message message message message message", ForegroundColor = Color. Gray });

label1.FormattedText = fs;

现在您在堆栈布局中添加此标签

【讨论】:

  • 在我的应用程序中,Label2 是可绑定的文本属性。 Label1 始终是静态的,Label2 根据绑定文本而变化。我需要单独包装第二个标签。
  • 跨度文本不可绑定。
  • UserVoice 提交要求此。如果你也想看这个,请投票。 xamarin.uservoice.com/forums/258559-xamarin-forms-suggestions/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-27
  • 1970-01-01
相关资源
最近更新 更多