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中的资源?