UWP AutoSuggestBox自定义图标

UWP AutoSuggestBox自定义图标,uwp,Uwp,我正在我的应用程序中使用AutoSuggestBox,我更喜欢做以下更改 在使用QueryIcon=Find时,我可以在最右边看到搜索。我是否可以将其向左对齐(类似于边缘搜索窗口) 我可以自定义“全部清除”按钮吗。我想在不同的时间使用不同的图标,具体取决于SuggestBox中的一些操作 你能指出我的选择吗 谢谢AutoSuggestBox是一个密封的控件,因此您无法重新模板它以自定义它,除非您可以使用属性。您可以覆盖许多资源(请参见generic.xaml和),例如更改图标的大小: <x

我正在我的应用程序中使用AutoSuggestBox,我更喜欢做以下更改

  • 在使用QueryIcon=Find时,我可以在最右边看到搜索。我是否可以将其向左对齐(类似于边缘搜索窗口)
  • 我可以自定义“全部清除”按钮吗。我想在不同的时间使用不同的图标,具体取决于SuggestBox中的一些操作
  • 你能指出我的选择吗


    谢谢

    AutoSuggestBox是一个密封的控件,因此您无法重新模板它以自定义它,除非您可以使用属性。您可以覆盖许多资源(请参见generic.xaml和),例如更改图标的大小:

    <x:Double x:Key="AutoSuggestBoxIconFontSize">12</x:Double>
    
    12
    
    从理论上讲,您也可以对可视化树进行爬网以检索某些元素并在代码隐藏中修改它们,但这可能会造成混乱,引入bug,并导致性能下降

    您可以在AutoSuggestBox上设置TextBoxStyle并将其设置为自定义TextBox,在自定义TextBox中,您可以操作一些XAML以满足您的需要,但您需要为所需的每个变体创建新的完整样式。这样做的缺点是,因为您需要整个TextBox模板的多个实例,所以您会受到性能的影响,这将阻止您在将来免费获得对TextBox样式的错误修复和更新

    您还可以使用任何自定义功能实现自己的AutoSuggestBox。这可能是一个更复杂的解决方案,但它可能是最简单、最高效的选择


    不过,我建议不要做这些更改,因为它们与平台的其他部分不一致,可能会让用户感到困惑。在Edge中,左侧有一个搜索图示符,但该图示符与AutoSuggetsBox中的搜索按钮不同。事实上,Edge似乎没有使用AutoSuggestBox控件,而是有自己的自定义实现。

    您只需要应用一种新样式,您可以从中找到默认样式。因此,如果您想将align
    QueryButton
    向左对齐,请更改布局。

    不,当您只是尝试为控件创建样式时,您不会受到性能影响。无论您将这些样式放在App.xaml还是Page.Resources中,它都需要在某个点加载,这将带来性能影响。风格越复杂,影响越大。他们希望在不同的时间使用不同的图标,这意味着完整文本框控件模板的多个副本,因为您无法在不覆盖整个控件模板的情况下操作模板中字体图标的图示符或位置,与不覆盖控件模板或覆盖更简单控件(如按钮)模板的样式相比,这将是一个相对较大的成功。我的应用程序使用了上百种自定义样式,带有许多svg/路径图标和情节提要动画,我从来没有注意到任何启动延迟。你可以尝试将大量的资源字典加入到一个应用程序中,它的加载速度也会一样快。最终,我们在这里讨论的是毫秒,但这取决于你如何/在哪里添加样式以及如何在那里使用样式来帮助限制影响。有趣。谢谢你的链接。看起来现在UWP应用程序自动支持XBF2了?这有点支持我的观点?:)