gpt4 book ai didi

c# - Xamarin.Forms 将效果添加到 XAML 中的所有条目

转载 作者:太空狗 更新时间:2023-10-29 23:20:31 26 4
gpt4 key购买 nike

我正在使用 FormsCommunityToolkit NuGet 包来实现它,因此当用户单击它们时,我的 Xamarin.Forms 应用程序中的所有条目都会选择它们的所有文本。 their GitHub 上的示例在 Entry 上使用此效果在 XAML 中是这样的:

<Entry Placeholder="focus this entry." VerticalOptions="Start" Text = "FOCUS THIS!">
<Entry.Effects>
<effects:SelectAllTextEntryEffect />
</Entry.Effects>
</Entry>

如果你把它放在每个人身上,这就有效了 Entry在你的代码中,但我有很多条目,想在我的 App.xaml 中将其设置为默认值文件夹。我试过这个:

<Style TargetType="Entry">
<Setter Property="Keyboard" Value="Text"/> <!--Defaults to capitalize first word-->
<Setter Property="Effects" Value="effects:SelectAllTextEntryEffect" />
</Style>

此方法适用于设置默认值 Keyboard对于所有条目,但以这种方式设置效果会使应用程序崩溃并出现此错误:

Can't resolve EffectsProperty on Entry

有没有人知道这样做的方法,这样我就不需要将代码添加到我的所有条目中?

最佳答案

您为什么不创建自己的 Entry哪个有效果?

因此创建 Entry 的继承, 我会称之为 EffectEntry .您可以通过创建一个新的 XAML 文件并将 Entry 的内容放入在那里。你可能想删除像 PlaceHolder 这样的属性和 Text , 但如果您希望所有条目都有一个属性作为默认属性,请在此处应用它们。

<Entry>
<Entry.Effects>
<effects:SelectAllTextEntryEffect />
</Entry.Effects>
</Entry>

转到代码隐藏并确保您的 EffectEntry继承了 Entry .

namespace MyApp.Controls
{
public partial class EffectEntry : Button
{
public EffectEntry ()
{
InitializeComponent ();
}
}
}

现在,在您应用的其余部分中,您只需使用 Entry已经像这样添加了效果:

<controls:EffectEntry Placeholder="focus this entry." VerticalOptions="Start" Text = "FOCUS THIS!" />

请注意 controls是您必须自己添加的命名空间。名称可能不同。在整个页面的上下文中,它可能看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:MyApp"
xmlns:controls="clr-namespace:MyApp.Controls"
x:Class="MyApp.MyAppPage">

<controls:EffectEntry Placeholder="focus this entry." VerticalOptions="Start" Text = "FOCUS THIS!" />
</ContentPage>

注意有多个 xmlns (XML 命名空间)条目在顶部。我已经添加了一个控件,你也可以用任何你喜欢的方式命名它。当您查看我们的 EffectEntry 的代码隐藏时,您将看到那里和这里的命名空间匹配。这样应用程序就知道在哪里可以找到控件。如果您决定要将控件移动到它们自己的程序集中,您也可以将其定义为 xmlns:controls="clr-namespace:MyApp.Controls;assembly=MyProject.Example"。 .

关于c# - Xamarin.Forms 将效果添加到 XAML 中的所有条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43005397/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com