2017-08-12 11 views
1

私は自分のアプリでAutoSuggestBoxを使用していますが、私は以下の変更を行うことをお勧めします。UWP AutoSuggestBoxアイコンのカスタマイズ

  1. QueryIcon = Findを使用すると、最も右側に検索が表示されます。左に揃えることができます(エッジ検索ウィンドウと同様)
  2. 「すべてクリア」ボタンをカスタマイズできますか? SuggestBoxのいくつかのアクションに応じて、異なる時間に異なるアイコンを使用したいと思います。

あなたは

おかげ

答えて

1

唯一必要なのは、新しいスタイルを適用することです。デフォルトのスタイルはAutoSuggestBox styles and templatesです。したがって、QueryButtonを左に揃えたい場合は、レイアウトを変更してください。

1

AutoSuggestBoxが密閉された制御であるので、あなたは多くのプロパティを超えて、それをカスタマイズすることをretemplateすることはできませんが、あなたに利用できるようになります...私のオプションが何であるかを指し示してくださいすることができます。例えば、アイコンのサイズを変更するあなたがオーバーライドできるリソースの数が(generic.xamlとdocsを参照)、があります

理論的に
<x:Double x:Key="AutoSuggestBoxIconFontSize">12</x:Double> 

、あなたはまた、特定の要素を取得するために、ビジュアルツリーをクロールすることができますコードビハインドでそれらを修正することができますが、これは面倒なことがあり、バグを導入し、パフォーマンスヒットを引き起こす可能性があります。

あなたできセットAutoSuggestBox上TextBoxStyleと、あなたのニーズを満たすためにXAMLの一部を操作することができるかもしれカスタムテキストボックスにそれを設定していますが、それぞれのバリエーションのための新しい完全なスタイルを作成する必要があります必要。これの欠点は、TextBoxテンプレート全体を複数インスタンス化する必要があるため、パフォーマンスが低下し、今後のTextBoxスタイルのバグ修正や更新ができなくなることです。

独自のAutoSuggestBoxを任意のカスタム機能で実装することもできます。これはもっと複雑な解決策かもしれませんが、最もハッキリで最もパフォーマンスの高いオプションかもしれません。

ではなくをお勧めします。これらの変更は、プラットフォームの残りの部分と矛盾し、ユーザーを混乱させる可能性があるためです。 Edgeでは、の左に検索グリフがありますが、グリフはAutoSuggetsBoxのボタンの検索と同じではありません。実際、EdgeはAutoSuggestBoxコントロールを使用するのではなく、独自のカスタム実装を持っているように見えます。

+0

いいえ、コントロールのスタイルを作成しようとするとパフォーマンスが低下することはありません。 –

+0

これらのスタイルをApp.xamlやPage.Resourcesに入れても、ある時点でロードする必要があります。これはパフォーマンスヒットをもたらすでしょう。スタイルが複雑になればなるほど、ヒットが大きくなります。コントロールテンプレート全体をオーバーライドせずにテンプレート内のFontIconのグリフや位置を操作できないため、さまざまな時間に異なるアイコンを使用したいと考えています。これは比較的大きなヒットですコントロールテンプレートをオーバーライドしないスタイル、またはボタンのような簡単なコントロールのテンプレートをオーバーライドするスタイルに変更します。 –

+0

私は多くのsvg/pathアイコンとストーリーボードアニメーションを持つ100以上のカスタムスタイルを使用するアプリを持っています。大量のリソース辞書をアプリに含めると、すぐに読み込まれるようになります。 –

関連する問題