旋转的标签与网格中的图像

时间:2017-07-14 14:05:44

标签: c# xaml xamarin.forms

旋转标签有问题。我希望将它放在网格中,并使标签中的单词不分割。就目前而言,就像在第一个列表项上一样,它被拆分为2行。 我试过LineBreakMode,但这不是我想要的。 将其设置为图像中心也是一个挑战,因为当谈到像“新”这样的短词时。在这种情况下,由于保证金,单词会降低。有没有办法解决它?

<Grid
  Margin="10,0,10,0"
  ColumnSpacing="0">
    <Grid.RowDefinitions>
        <RowDefinition Height="125"></RowDefinition>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="50"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    <Image                                                      
      Grid.Row="0" Grid.Column="0"
      Margin="0,3,0,3"
      Source="{Binding Status,Converter={StaticResource ImageConverter }}"
      />
        <StackLayout Grid.Row="0" Grid.Column="0"
          VerticalOptions="FillAndExpand"
          HorizontalOptions="FillAndExpand">
            <Label Text="{Binding StatusDict}}"
              Margin="0,50,0,0"
              TextColor="White"
              FontSize="Micro"
              Rotation="270"
              />
        </StackLayout>
    .
    .
    .
    .
</Grid>

enter image description here

2 个答案:

答案 0 :(得分:0)

尝试将标签放在网格内的stacklayout中,然后尝试包装标签。

<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>

有关详细信息,请访问此链接 - https://forums.xamarin.com/discussion/17488/xamarin-forms-label-wont-word-wrap-inside-a-grid 希望它有所帮助。

答案 1 :(得分:0)

过去在xamarin中使用标签进行了多次排序问题,他们的论坛上有很多讨论此类问题的帖子,但是你只是出于兴趣而尝试将linebreakmode设置为不包装这些话。 LineBreakMode="NoWrap"

<Grid Margin="10,0,10,0" ColumnSpacing="0">

    <Grid.RowDefinitions>
        <RowDefinition Height="125"></RowDefinition>
    </Grid.RowDefinitions>

    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="50"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>

    Image Grid.Row="0" Grid.Column="0" Margin="0,3,0,3" Source="{Binding Status,Converter={StaticResource ImageConverter }}"/>

    <StackLayout Grid.Row="0" Grid.Column="0" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
        <Label Text="{Binding StatusDict}" Margin="0,50,0,0" TextColor="White" FontSize="Micro" Rotation="270" LineBreakMode="NoWrap" />
    </StackLayout>

</Grid>

链接到属性信息HERE,并链接到类型信息HERE

值得记住您明确设置了行的高度,因此您无法动态调整标签的宽度并希望表格能够调整,但是如果你想在一行上总是有文字,那么你需要考虑动态地调整标签的宽度和表行的高度。