MultiBinding 中的 XAML 文本格式
Posted
技术标签:
【中文标题】MultiBinding 中的 XAML 文本格式【英文标题】:XAML Text Formatting in MultiBinding 【发布时间】: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>
【问题讨论】:
如果你需要不同的对齐方式,你应该使用多个标签 例如,我使用水平堆栈布局? 是的,我会这样做 您想发布答案吗? 【参考方案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>
【讨论】:
以上是关于MultiBinding 中的 XAML 文本格式的主要内容,如果未能解决你的问题,请参考以下文章
WPF DataGrid MultiBinding到DataGrid ItemSsource中的类
WPF 多值绑定(MultiBinding)与多属性触发器(MultiTrigger)与多数据触发器(MultiDataTrigger)
Xamarin.Forms:MultiBinding IMultiValueConverter 接收 Null 值