問題:
需要對所有彈出選單應用樣式,僅適用于某個彈出選單。請幫助我 需要對所有彈出選單應用樣式,僅適用于某個彈出選單。請幫幫我 *
截圖:

需要為第一個應用樣式,而不是所有樣式
代碼:
<Shell
x:Class="RakeshProj.AppShell"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:RakeshProj"
FlyoutBackgroundColor="Gray">
<!--<Shell.FlyoutHeader>
<Grid>
<Image Source="dotnet_bot.png"
HeightRequest="142"
VerticalOptions="Center"
WidthRequest="230"
HorizontalOptions="Center" />
</Grid>
</Shell.FlyoutHeader>-->
<Shell.Resources>
<Style TargetType="Label"
Class="FlyoutItemLabelStyle">
<Setter Property="TextColor"
Value="White" />
</Style>
</Shell.Resources>
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems" >
<ShellContent Title="Settings"
Icon="gear_solid.svg"
x:Name="ShellContent1_1"
ContentTemplate="{DataTemplate local:MainPage}"
/>
<ShellContent Title="Remove Ads"
Icon="unlock_solid.svg"
x:Name="ShellContent2_1"
ContentTemplate="{DataTemplate local:MainPage}" />
<ShellContent Title="Usage tips"
Icon="circle_question_solid.svg"
x:Name="ShellContent3_1"
ContentTemplate="{DataTemplate local:MainPage}" />
</FlyoutItem>..................
uj5u.com熱心網友回復:
SniceShellContent不提供 textcolor 屬性,我們可以自定義類ShellContent并添加一個新BindableProperty 的來表示它應該使用哪種文本顏色。
- 創建一個繼承自的新類名 MyShell
ShellContent,并創建一個名為的新BindablePropertyTextColor。
public class MyShell : ShellContent
{
public static readonly BindableProperty TextColorProperty =
BindableProperty.Create("TextColor", typeof(Color), typeof(MyShell), null);
public Color TextColor
{
get { return (Color)GetValue(TextColorProperty); }
set { SetValue(TextColorProperty, value); }
}
}
- 使用MyShell而不是
ShellContent在 xaml 中并在TextColor屬性上分配值。
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems" >
<local:MyShell
TextColor="Red"
FlyoutIcon="dotnet_bot.svg"
Title="11111"
ContentTemplate="{DataTemplate local:MainPage}"
Route="MainPage" />
<local:MyShell
TextColor="Blue"
FlyoutIcon="dotnet_bot.svg"
Title="22222"
ContentTemplate="{DataTemplate local:MainPage}"
Route="MainPage" />
<local:MyShell
TextColor="Green"
FlyoutIcon="dotnet_bot.svg"
Title="22222"
ContentTemplate="{DataTemplate local:MainPage}"
Route="MainPage" />
</FlyoutItem>
Shell.ItemTemplate在 Label(TextColor) 上定義和自定義。
<Shell.ItemTemplate>
<DataTemplate>
<Grid ColumnDefinitions="0.2*,0.8*">
<Image Source="{Binding FlyoutIcon}"
Margin="5"
HeightRequest="45" />
<Label Grid.Column="1"
Text="{Binding Title}"
TextColor="{Binding TextColor}"
FontAttributes="Italic"
VerticalTextAlignment="Center" />
</Grid>
</DataTemplate>
</Shell.ItemTemplate>
uj5u.com熱心網友回復:
大多數毛伊島問題可以通過查找 Xamarin.Forms 檔案或教程來回答。
在這種情況下,XF 樣式簡介,創建樣式部分,請參閱以下代碼片段:
<Style x:Key="labelStyle" TargetType="Label">
<Setter Property="HorizontalOptions" Value="Center" />
<Setter Property="VerticalOptions" Value="CenterAndExpand" />
<Setter Property="FontSize" Value="Large" />
</Style>
使用此 xaml 來使用它:
<Label Text="Demonstrating an explicit style" Style="{StaticResource labelStyle}" />
解釋:x:Key="..."提供了一種僅在需要的專案上參考樣式的方法。帶有 a 的樣式x:Key只會影響通過Style="{StaticResource ...}".
更新
有一個相關的 Maui 檔案:Style apps using XAML。
我沒有花時間找到等效的示例,但上面的代碼可以在毛伊島作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/479118.html
