我正在 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 构建。
它应该按预期工作。请删除 Resources\Styles\Styles.xaml 中的默认样式设置器: