【问题标题】:XAML Text Formatting in MultiBindingMultiBinding 中的 XAML 文本格式
【发布时间】:2021-08-29 07:51:03
【问题描述】:

我正在尝试用不同的格式和不同的方向(左对齐和右对齐)来格式化连接标签。有人知道怎么做吗?

如何使 {0} 字符串加粗并左对齐以及 {1} 字符串正常右对齐屏幕?

我的 xml:

    <Label>
        <Label.Text>
            <MultiBinding StringFormat="{}{0}      {1}">
                <Binding Source="Tag:" />
                <Binding Path="Day" />
            </MultiBinding>
        </Label.Text>
    </Label>

【问题讨论】:

  • 如果你需要不同的对齐方式,你应该使用多个标签
  • 例如,我使用水平堆栈布局?
  • 是的,我会这样做
  • 您想发布答案吗?

标签: c# android ios xamarin.forms


【解决方案1】:

如果你想使用MultipleBinding,你可以试试下面的代码。但这无法使 {0} 字符串加粗并左对齐,而 {1} 字符串正常右对齐到屏幕。

 <Label>
            <Label.Text>
                <MultiBinding StringFormat="{}{0}      {1}">
                    <Binding Path="Model1.Day" />
                    <Binding Path="Model1.Tag" />
                </MultiBinding>
            </Label.Text>
        </Label>

您可以改用 AbsoluteLayout。

 <AbsoluteLayout BackgroundColor="LightBlue" VerticalOptions="EndAndExpand">
        <Label Text="{Binding Path=Model1.Day}"   BackgroundColor="DarkBlue" TextColor="White"/>
        <Label Text="{Binding Path=Model1.Tag}"  AbsoluteLayout.LayoutBounds="1, 0, AutoSize, AutoSize" AbsoluteLayout.LayoutFlags="PositionProportional" BackgroundColor="DarkBlue" TextColor="White"/>
    </AbsoluteLayout>

【讨论】:

    【解决方案2】:

    也许是这样的?

    随意调整

       <Label>
            <Label.FormattedText>
                <FormattedString>
                    <Span Text="{Binding FirstName}" FontSize="30" FontAttributes="Bold" ForegroundColor="Fuchsia" />
                    <Span Text="{Binding LastName}" FontSize="20" />
                </FormattedString>
            </Label.FormattedText>
        </Label>
    

    【讨论】:

    • 不幸的是,我也不知道如何将文本与您的解决方案对齐。我选择了水平堆栈面板。
    【解决方案3】:

    我现在带着两个堆栈面板。 第一个垂直,第二个水平:

    <StackLayout Orientation="Vertical" Spacing="20" Padding="15">
        <StackLayout Orientation="Horizontal">
            <Label x:Name="LblDate" FontAttributes="Bold" HorizontalOptions="StartAndExpand"/>
            <Label Text="{Binding Date}"/>
        </StackLayout>
        <StackLayout Orientation="Horizontal">
            <Label x:Name="LblDay" FontAttributes="Bold" HorizontalOptions="StartAndExpand"/>
            <Label Text="{Binding Day}"/>
        </StackLayout>
        <StackLayout Orientation="Horizontal">
            <Label x:Name="LblTimepair" FontAttributes="Bold" HorizontalOptions="StartAndExpand"/>
            <Label Text="{Binding Time1}"/>
            <Label Text="-"/>
            <Label Text="{Binding Time2}"/>
        </StackLayout>
        <StackLayout Orientation="Horizontal">
            <Label x:Name="LblBreak" FontAttributes="Bold" HorizontalOptions="StartAndExpand"/>
            <Label Text="{Binding TimeBreak}"/>
            <Label Text="h"/>
        </StackLayout>
        <StackLayout Orientation="Horizontal">
            <Label x:Name="LblTotalTime" FontAttributes="Bold" HorizontalOptions="StartAndExpand"/>
            <Label Text="{Binding TimeTotal}"/>
            <Label Text="h"/>
        </StackLayout>
    
    </StackLayout>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多