0

Uno ではまだサポートされていないテンプレート バインド方法でテーマの色をグローバルに変更することを知っています。(ToggleSwitch で試してみたところ、ToggleSwitch カスタム スタイルが UWP と WASM の両方で完全に動作するようになりました)。そこで、同様に WinUI 2.4 ProgressRing 用のカスタム スタイルを用意しました。WinUI Github リポジトリから ProgressRing のデフォルト スタイルを収集し、カスタマイズしました。

 <!-- Default style for Microsoft.UI.Xaml.Controls.ProgressRing -->
            <Style x:Key="AcmProgressRing" TargetType="controls:ProgressRing">
                <Setter Property="Foreground" Value="{StaticResource AcmPink}" />
                <Setter Property="Background" Value="{StaticResource AcmPurple}" />
                <Setter Property="IsHitTestVisible" Value="False" />
                <Setter Property="HorizontalAlignment" Value="Center" />
                <Setter Property="VerticalAlignment" Value="Center" />
                <Setter Property="MinHeight" Value="16" />
                <Setter Property="MinWidth" Value="16" />
                <Setter Property="IsTabStop" Value="False" />
                <Setter Property="Width" Value="32" />
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="controls:ProgressRing">
                            <Grid x:Name="LayoutRoot" Background="Transparent">
                                <VisualStateManager.VisualStateGroups>
                                    <VisualStateGroup x:Name="CommonStates">
                                        <VisualState x:Name="Active">
                                            <Storyboard>
                                                <DoubleAnimation
                                            Storyboard.TargetName="LayoutRoot"
                                            Storyboard.TargetProperty="Opacity"
                                            To="1"
                                            Duration="0:0:0.15" />
                                            </Storyboard>
                                        </VisualState>
                                        <VisualState x:Name="Inactive">
                                            <Storyboard>
                                                <DoubleAnimation
                                            Storyboard.TargetName="LayoutRoot"
                                            Storyboard.TargetProperty="Opacity"
                                            To="0"
                                            Duration="0" />
                                            </Storyboard>
                                        </VisualState>
                                    </VisualStateGroup>
                                </VisualStateManager.VisualStateGroups>
                                <!-- AnimatedVisualPlayer for Lottie -->
                                <controls:AnimatedVisualPlayer x:Name="IndeterminateAnimatedVisualPlayer" AutoPlay="false" Stretch="fill"/>

                            </Grid>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>

私のProgressRingは次のとおりです。

<controls:ProgressRing x:Name="Waiter" Width="50" Height="50" Style="{StaticResource AcmProgressRing}" IsActive="True"/>

ご覧のとおり、スタイルは UWP で正しく実行されます。 ここに画像の説明を入力

ただし、WASMはデフォルトのスタイルを示しています:(

ここに画像の説明を入力

パッケージ

  - Uno.UI.RemoteControl {2.4.0}

  - Newtonsoft.Json {12.0.3}

  - Uno.UI.Lottie {2.4.0}

  - Uno.Wasm.Bootstrap {1.2.0}

  - Uno.Wasm.Bootstrap.DevServer {1.2.0}

  - ACM_Search_AdminApps.Shared {1.1.0}

  - Microsoft.Extensions.Logging.Filter {1.1.2}

  - Microsoft.Extensions.Logging.Con... {1.1.1}

  - NETStandard.Library {2.0.3}

   - Uno.UI {2.4.0}

   - ACM_Search_AdminApps.Shared {1.1.0}

  - Microsoft.NETCore.UniversalWindo... {6.2.10}

   - Microsoft.Extensions.Logging.Con... {1.1.1}

  - Microsoft.Extensions.Logging.Filter {1.1.2}

  - Microsoft.Toolkit.Uwp.UI.Lottie {6.0.0}

  - Microsoft.UI.Xaml {2.4.2}

   - Newtonsoft.Json {12.0.3}

  - Uno.Core {2.0.0}

WASM での WinUI ProgressRing のスタイルは、UWP スタイルと一致する必要があります。どうすればこれを修正できますか? ありがとう。

4

0 に答える 0