確實,問題出在你期望的地方。在你的情況下,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'的自定義生成是有辦法,我可以設置'TextControlBackgroundHoverOpacity'的價值在我的'App.xaml'去改變? – user1
@ user1對,沒有意識到它是Xamarin.Forms的內部代碼。然後我會更新UWP特定代碼中TextControlBackgroundHoverOpacity的值。像這樣:Windows.UI.Xaml.Application.Current.Resources [「TextControlBackgroundHoverOpacity」] = 1;您也許可以通過編程方式刪除VisualState,但我正在通話並且無法立即驗證它。 – hankide
是否可以替換xaml中的資源? – user1