2015-10-15 111 views
7

我使用Xamarin並使用XAML創建了我的視圖,但我無法爲我的生活獲取此標籤以便按照我希望的方式進行包裝。如果標籤獲取到屏幕的邊緣,我想包這樣的... ...使用StackLayout進行標籤封裝

This is the way I want it to look

現在它正在尋找這樣的...

This is how it is showing up

這裏是我的代碼:

<StackLayout Orientation="Vertical" HorizontalOptions="StartAndExpand" BindingContext="{Binding CurrentProviderDetails}" Padding="20,20,20,20" > 
    <Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto" /> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="Auto" /> 
    </Grid.ColumnDefinitions> 
<!--Certification Board--> 
    <StackLayout Orientation="Horizontal" HorizontalOptions="StartAndExpand" Grid.Row="0" Grid.Column="0" > 
    <Label Text="Certification Board: " FontSize="13" HorizontalOptions="Fill" VerticalOptions="CenterAndExpand" /> 
    <Label Text="{Binding Certification}" VerticalOptions="CenterAndExpand" HorizontalOptions="Center" Font="17" LineBreakMode="WordWrap"/> 
    </StackLayout> 
</Grid> 
</StackLayout> 

這不需要在一個網格中,這只是我現在正在嘗試的方法。我唯一的要求是'認證委員會'是一個標籤,並且我必須傳遞一個值,當它到達屏幕的末尾時,這個值將被換行。任何幫助將是真棒,謝謝!

+3

有你有一個網格,嵌在StackLayout什麼特別的原因,然後嵌入了一個StackLayout?如果不是,請將所有StackLayouts排成一行,在Grid中放置兩列,Column Width Width Auto,Column 1 Width *以及各自列中的2個標籤,並在您的「認證板」 –

回答

4

在您的標籤中放置一個LineBreakMode =「NoWrap」標籤。這樣你可以避免包裝。

但是,如果你沒有足夠的空間,這個詞將被剪切。

0

您可以通過將包含在水平對齊的StackLayout中的兩個標籤組合到一個Label中並設置LineBreakMode =「WordWrap」來實現所需的外觀。 XAML有一個稱爲StringFormat的強大特性。您可以使用它將靜態「認證委員會:」文本添加到綁定的認證屬性。 您的標籤應該是這樣的:

<Label Text="{Binding Certification, StringFormat='Board Certification:{0:F0}'}" LineBreakMode="WordWrap"/> 
相關問題