如何在Xamarin.Forms中更改编辑器控件的OnMouseHover行为

时间:2017-02-09 15:23:05

标签: c# xamarin uwp xamarin.forms

我正在Xamarin.Forms设计一个应用程序,我正在使用Editor控件:

我在UWP上运行此功能,当我将鼠标悬停在控件上时,背景颜色会反转为黑色。见下图:

未聚焦 enter image description here

鼠标悬停 enter image description here

关注 enter image description here

如你所见,非常可怕。

我感觉可能与this ThemeResource Style有关。我也可以在WinRT平台上看到(我认为UWP使用相同的控件)it is definitely applying that style但我不知道对样式有足够的了解 这可能与this line in particular

有关

1 个答案:

答案 0 :(得分:2)

确实,问题出在了你预期的地方。在您的情况下,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>