C# 如何更改Xamarin.Forms中编辑器控件的onmousehave行为
我正在C# 如何更改Xamarin.Forms中编辑器控件的onmousehave行为,c#,xamarin,uwp,xamarin.forms,C#,Xamarin,Uwp,Xamarin.forms,我正在Xamarin.Forms中设计一个应用程序,我正在使用编辑器控件,如下所示: 我在UWP上运行它,当我将鼠标悬停在控件上时,背景色反转为黑色。见下图: 未聚焦 将鼠标移到上方 专注 正如你所看到的,非常可怕 我有一种感觉,这可能与我也可以在WinRT平台上看到(我认为相同的控件用于UWP)有关,但我对样式的了解还不够 这可能与有关。事实上,问题在于你的预期。在您的情况下,VisualState PointerOver会将边界笔刷和背景的不透明度设置为新值。如果您想保持背景不变,只
Xamarin.Forms
中设计一个应用程序,我正在使用编辑器
控件,如下所示:
我在UWP上运行它,当我将鼠标悬停在控件上时,背景色反转为黑色。见下图:
未聚焦
将鼠标移到上方
专注
正如你所看到的,非常可怕
我有一种感觉,这可能与我也可以在WinRT平台上看到(我认为相同的控件用于UWP)有关,但我对样式的了解还不够
这可能与有关。事实上,问题在于你的预期。在您的情况下,VisualState PointerOver会将边界笔刷和背景的不透明度设置为新值。如果您想保持背景不变,只需删除下面代码中标记的部分 我可能会保持边框笔刷高亮显示,以便用户仍然可以看到控件是聚焦的。但是,如果愿意,您也可以删除它(实际上是整个视觉状态)
<VisualState x:Name="PointerOver">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush" Storyboard.TargetName="BorderElement">
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightChromeAltLowBrush}" />
</ObjectAnimationUsingKeyFrames>
<!-- Remove the following -->
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="BackgroundElement">
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextControlBackgroundHoverOpacity}" />
</ObjectAnimationUsingKeyFrames>
<!-- until here -->
</Storyboard>
</VisualState>
这意味着要自定义构建Xamain.Forms
是否可以在我的App.xaml
中设置TextControlBackgroundHoverOpacity
的值来更改行为?@user1对,没有意识到这是Xamarin.Forms的内部代码。然后我将更新UWP特定代码中TextControlBackgroundHoverOpacity的值。类似这样的内容:Windows.UI.Xaml.Application.Current.Resources[“TextControlBackgroundHoverOpacity”]=1;您也可以通过编程方式删除VisualState,但我正在打电话,现在无法验证。是否可以替换xaml中的资源?