3

私が現在取り組んでいるアプリケーションにはアイテムのリストが含まれており、各アイテムはさまざまなソース (Twitter、Facebook、電子メールなど) からユーザーに送信されたメッセージを表しています。

各アイテムには、ユーザーがメッセージの送信元を特定するのに役立つ小さなベクトル グラフィック (パス) が含まれています。

ここに画像の説明を入力

このベクトル画像を各アイテムに適切に表示するために、そのリソースに x:Shared="False" 属性を付けてマークしました。これにより、メッセージごとにパスの新しいインスタンスが作成されます。

これはすべて正常に機能しますが、同じパスの複数のインスタンスを作成するのは無駄のように感じずにはいられません。アイテムのサイズが変わるため、ビットマップを使用できないため、ベクター画像が必要です。

私の質問は次のとおりです。パス オブジェクトの新しいインスタンスを生成することなく、同じリソースから複数のパスを提示するためのより良い方法を知っている人はいますか?

4

1 に答える 1

1

設計や実装が悪いとは思いません。Pathは でUIElementあり、1 つしか持つことができませんParent(これが make x:Shared = false の理由です)。ベクター グラフィックスが必要な場合は、Path を使用する必要があります。したがって、各親には独自の子、UIElementつまりここにパスがあります。

データ入力用の複数の入力コントロールを備えたフォームがあり、各データ セットを保存するための複数のボタンがあるとします。この場合、子ボタンのすべてのインスタンスが「保存」とだけ表示されている場合でも、これだけ多くの子ボタンのインスタンスが作成されます。したがって、同様のジオメトリを持つ Path の複数のインスタンスを持つことは問題ではないと思います

于 2013-10-17T13:45:54.047 に答える