当视图聚焦在 UWP 上时,不应用 BackgroundColor
Posted
技术标签:
【中文标题】当视图聚焦在 UWP 上时,不应用 BackgroundColor【英文标题】:BackgroundColor is not applied when the View is focused on UWP 【发布时间】:2020-09-08 02:11:12 【问题描述】:这似乎也是 Entry 中的行为。但我们可以在 Entry using Effects (https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/effects/) 中更改此行为。我们已经尝试过 CustomView 但整个行为都发生了变化 在 Xamarin.Forms 中,UWP 不会更新焦点状态下的背景颜色。在此,我创建了继承自 UWP 中的 TextBox 的“NumericTextBox”。我创建了一个“NumericTextBox_Forms”,继承自 XForms 中的 View。在 UWP Renderer 类中为“NumericTextBox”创建一个新实例并设置本机控件。请在下面找到我的示例。
<StackLayout Padding="0,20,0,0">
<Entry Keyboard="Numeric">
<Entry.Effects>
<local:FocusEffect/>
</Entry.Effects>
<Entry.Triggers>
<Trigger TargetType="Entry" Property="IsFocused" Value="True">
<Setter Property="BackgroundColor" Value="Yellow" />
</Trigger>
</Entry.Triggers>
</Entry>
<NumericTextBox_Forms>
<NumericTextBox_Forms.Effects>
<local:FocusEffect/>
</NumericTextBox_Forms.Effects>
<NumericTextBox_Forms.Triggers>
<Trigger TargetType="sync:SfMaskedEdit" Property="IsFocused" Value="True">
<Setter Property="BackgroundColor" Value="Blue" />
</Trigger>
</NumericTextBox_Forms.Triggers>
</NumericTextBox_Forms >
</StackLayout>
【问题讨论】:
【参考方案1】:View 聚焦在 UWP 上时不应用背景颜色
对于测试 SfMaskedEdit 包含方法内部覆盖IsFocused
触发器。对于该场景,我建议为NumericTextBox_Forms
进行自定义渲染,然后在控制GettingFocus 事件中编辑bg 颜色。
[assembly: ExportRenderer(typeof(NumericTextBox_Forms), typeof(NumericTextBoxRender))]
namespace XamarinEffect.UWP
public class NumericTextBoxRender :SfMaskedEditRenderer
protected override void OnElementChanged(ElementChangedEventArgs<Syncfusion.XForms.MaskedEdit.SfMaskedEdit> e)
base.OnElementChanged(e);
if(Control != null)
Control.GettingFocus += Control_GettingFocus;
private void Control_GettingFocus(Windows.UI.Xaml.UIElement sender, Windows.UI.Xaml.Input.GettingFocusEventArgs args)
Control.Background = new SolidColorBrush(Colors.Blue);
我在上面试过了,对我来说效果很好,希望能解决你的问题。
【讨论】:
在聚焦状态下不会更新 uwp 中的背景颜色。我还在下面的链接中附上了示例供您参考。 syncfusion.com/downloads/support/directtrac/general/ze/… @CoCalceDew 有关 Yuvaraj 更新样本的任何经过验证的更新以上是关于当视图聚焦在 UWP 上时,不应用 BackgroundColor的主要内容,如果未能解决你的问题,请参考以下文章
当输入集中在移动 safari 上时,页面底部出现不需要的填充