我有一個頁面區域,我想將其最小化到一邊。當它被最小化時,我希望該區域的“標題”旋轉 90 度,但是當我這樣做時,它會被剪輯到標簽的未旋轉高度,所以它看起來像這樣(旋轉后的文本應該是“打開任務摘要"):
顯然,這就是正在發生的事情:
下面是定義標簽的 XAML 部分。我嘗試了 Fill、FillAndExpand、StartAndExpand 等的幾種變體,并設定了 HeightRequest 和 WidthRequest 屬性。我也在沒有 StackLayout 并且將 Rotation 應用于標簽而不是 StackLayout 的情況下完成了它,它看起來總是一樣的。
<StackLayout
HorizontalOptions="Fill"
VerticalOptions="Fill"
Rotation="90"
IsVisible="{Binding DetailMinimized}" >
<Label
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
LineBreakMode="NoWrap"
HorizontalTextAlignment="Center"
VerticalTextAlignment="Center"
Text="{Binding DetailTitle}"
IsVisible="{Binding DetailMinimized}" />
</StackLayout>
那么構建 XAML 以使全文在旋轉后可見的正確方法是什么?
uj5u.com熱心網友回復:
我已經設法通過一些負邊距黑客來做到這一點。
這是代碼:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage
x:Class="XfLabelRotationApp.MainPage"
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
<Grid ColumnDefinitions="auto, *" ColumnSpacing="0">
<Grid
Grid.Column="0"
ColumnDefinitions="*,auto"
ColumnSpacing="0">
<StackLayout
Grid.Column="0"
Padding="10"
Spacing="10">
<BoxView
BackgroundColor="DarkBlue"
HeightRequest="30"
WidthRequest="30" />
<BoxView
BackgroundColor="DarkBlue"
HeightRequest="30"
WidthRequest="30" />
<BoxView
BackgroundColor="DarkBlue"
HeightRequest="30"
WidthRequest="30" />
<BoxView
BackgroundColor="DarkBlue"
HeightRequest="30"
WidthRequest="30" />
</StackLayout>
<Grid
Grid.Column="1"
BackgroundColor="#ddd"
WidthRequest="30">
<Label
Margin="-100,0"
Rotation="90"
Text="Open Detail By Dragging This"
VerticalTextAlignment="Center" />
</Grid>
</Grid>
<StackLayout
Grid.Column="1"
Padding="10"
BackgroundColor="#eee">
<Label Text="Main App Content" />
</StackLayout>
</Grid>
</ContentPage>
注意. Margin="-100,0"
_ Label
如果那不存在,則標簽只會假定Height
其Width
. 這就是該Rotation
屬性在 Xamarin.Forms 中的作業方式。
希望這可以幫助。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/506314.html
標籤:C# xml xamarin.forms