2017-07-14 3 views
0

Ich habe ein Problem mit dem gedrehten Etikett. Ich möchte es im Raster zentrieren und das Wort im Etikett nicht teilen. Vorerst ist es wie beim ersten Listeneintrag auf 2 Zeilen aufgeteilt. Ich habe versucht LineBreakMode, aber das ist nicht das, was ich suche. Es ist auch eine Herausforderung, es in die Mitte des Bildes zu setzen, wenn es um kurze Wörter wie "Neu" geht. In diesem Fall wird das Wort wegen der Marge verringert. Gibt es eine Möglichkeit, damit zu arbeiten?Gedrehtes Etikett mit Bild im Raster

<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

Antwort

0

Versuchen Sie, Ihr Etikett in einem stacklayout innerhalb des Gitters zu setzen, und dann versuchen, das Etikett zu wickeln.

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

Für weitere Informationen, besuchen Sie diese Link- https://forums.xamarin.com/discussion/17488/xamarin-forms-label-wont-word-wrap-inside-a-grid Hoffe, es hilft.

+0

können Sie auch diesen Link-https://StackOverflow.com/questions/5344486/text-wrapping-in-grid-in-view-panel überprüfen – LogicalDesk

0

Es gab einige Probleme mit Zeilenumbrüchen mit Labels in Xamarin in der Vergangenheit, viele Threads in ihren Foren diskutieren diese Art von Sache, aber nur aus Interesse haben Sie versucht, einfach den Zeilenumbruchmodus, um die Worte nicht zu wickeln. 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> 

Links zur Eigenschaft info HERE und Link zu dem Typ info HERE

Es eingedenk lohnt, dass Sie explizit die Höhe Ihrer Zeilen einstellen, so dass Sie nicht dynamisch Passen Sie die Breite des Etiketts an und erwarten Sie, dass die Tabelle angepasst wird. Wenn Sie jedoch den Text immer in einer einzelnen Zeile haben möchten, müssen Sie die Breite des Etiketts und die Höhe der Tabellenzeile dynamisch anpassen.