无法使 XAML VisualState 代码正常工作

问题描述 投票:0回答:1

我正在 MS Learn 上学习 MAUI 和 XAML。 无法使示例代码正常工作。 当我单击按钮并按住鼠标按钮时,比例从 1.0 变为 0.8。 当我释放鼠标按钮时,比例应该返回到 1.0,但事实并非如此。下面是代码隐藏文件中的 XAML 代码和 C# 代码:

XAML 代码:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="ControlGallery.Views.XAML.ButtonVisualStatePageXAML"
             Title="Button Visual State">
    
    <!-- Original code from ms-learn website does not work -->
    <VerticalStackLayout>
        <Label Text="Button Visual State Using XAML"
               FontSize="40"
               FontAttributes="Bold"
               HorizontalOptions="Center" />
        <Button Text="Click me!"
                HorizontalOptions="Center">
            <VisualStateManager.VisualStateGroups>
                <VisualStateGroup x:Name="CommonStates">
                    <VisualState x:Name="Normal">
                        <VisualState.Setters>
                            <Setter Property="Scale"
                                    Value="1" />
                        </VisualState.Setters>
                    </VisualState>
                    <VisualState x:Name="Pressed">
                        <VisualState.Setters>
                            <Setter Property="Scale"
                                    Value="0.8" />
                        </VisualState.Setters>
                    </VisualState>
                    <VisualState x:Name="PointerOver" />
                </VisualStateGroup>
            </VisualStateManager.VisualStateGroups>
        </Button>
    </VerticalStackLayout>

    <!-- A.I. first suggestion did not work -->
    <!--<VerticalStackLayout>
        <Label Text="Button Visual State Using XAML"
               FontSize="40"
               FontAttributes="Bold"
               HorizontalOptions="Center" />
        <Button Text="Click me!"
                HorizontalOptions="Center">
            <VisualStateManager.VisualStateGroups>
                <VisualStateGroup x:Name="CommonStates">
                    <VisualState x:Name="Normal">
                        <VisualState.Setters>
                            <Setter Property="Scale"
                                    Value="1" />
                        </VisualState.Setters>
                    </VisualState>
                    <VisualState x:Name="Pressed">
                        <VisualState.Setters>
                            <Setter Property="Scale"
                                    Value="0.8" />
                        </VisualState.Setters>
                    </VisualState>
                </VisualStateGroup>
            </VisualStateManager.VisualStateGroups>
        </Button>
    </VerticalStackLayout>-->

    <!-- A.I. second suggestion did not work -->
    <!--<VerticalStackLayout>
        <Label Text="Button Visual State Using XAML"
               FontSize="40"
               FontAttributes="Bold"
               HorizontalOptions="Center" />

        <Button Text="Click me!"
                HorizontalOptions="Center">
            <VisualStateManager.VisualStateGroups>
                <VisualStateGroup x:Name="CommonStates">
                    <VisualState x:Name="Normal">
                        <VisualState.Setters>
                            <Setter Property="Scale"
                            Value="1" />
                        </VisualState.Setters>
                    </VisualState>
                    <VisualState x:Name="Pressed">
                        <VisualState.Setters>
                            <Setter Property="Scale"
                            Value="0.8" />
                        </VisualState.Setters>
                    </VisualState>
                    <VisualState x:Name="PointerOver">
                        <VisualState.Setters>
                            <Setter Property="Scale"
                                    Value="1" />
                        </VisualState.Setters>
                    </VisualState>
                </VisualStateGroup>
            </VisualStateManager.VisualStateGroups>
        </Button>
    </VerticalStackLayout>-->
</ContentPage>

C# 代码隐藏:

namespace ControlGallery.Views.XAML;

public partial class ButtonVisualStatePageXAML : ContentPage
{
    public ButtonVisualStatePageXAML()
    {
        InitializeComponent();
    }
}

我使用的是 Visual Studio 2022 社区版。 Windows 和 Android 都会出现此错误。

我问了 A.I.但这两个建议都没有奏效。 我重新启动了 Visual Studio,清理并重建了解决方案。 我使用 MAUI VisualState 搜索了 StackOverflow。 出现 19 篇文章。 有些提到了 Xamarin,但被忽略了。 无论如何,没有文章解决我的问题。 VisualState 代码在 Windows 和 Android 上均失败。 不是为 Apple 构建。

xaml maui
1个回答
0
投票

它应该按预期工作。请删除 Resources\Styles\Styles.xaml 中的默认样式设置器:


© www.soinside.com 2019 - 2024. All rights reserved.