2012-01-12 8 views
6

私は大規模なSilverlight 4プロジェクトの開発の一部です。ここでは、GUIのさまざまな部分で使用する必要がある一連のシンボルがあります(下の例を参照)。大きなプロジェクトでアイコン(xaml-paths)を再利用する方法は?

これらのアイコンは、Blendで直接複数のパスから作成され、単独で、または複数のコンテキストで同じアイコンが使用されているusercontrolsで異なる視覚状態として使用されます。単一のアイコンのデザインの変更を容易にし、アプリケーション全体に伝播させるために、これらを保存する最善の方法は何ですか?

私はそれらからスタイルを作成しようとしましたが(右クリック - >編集スタイル..)、これはパスデータなしで空のスタイルを作成することしかできません。パスを含むグリッドのxamlコードを手作業で辞書に入れても、何の効果もありませんでした。

簡単な方法でパスとスタイル(色、ストローク、塗りつぶしなど)の情報を簡単に保存できますか?いいえ、簡単に更新できますが、usercontrolsや他の場所で簡単に再利用できます。その後、

enter image description here

答えて

7
<Style x:Key="MyIcon" TargetType="ContentControl"> 
     <Setter Property="ContentTemplate"> 
      <Setter.Value> 
       <DataTemplate> 
        <Path Stretch="Fill" Fill="Red" Data="F1 M 24,13C 27.1521,13 29.9945,14.3258 32,16.4501L 32,11L 35,14L 35,22L 27,22L 24,19L 29.5903,19C 28.217,17.4656 26.2212,16.5 24,16.5C 20.1969,16.5 17.055,19.3306 16.5661,23L 13.0448,23C 13.5501,17.3935 18.262,13 24,13 Z M 24,31.5C 27.8031,31.5 30.945,28.6694 31.4339,25L 34.9552,25C 34.4499,30.6065 29.738,35 24,35C 20.8479,35 18.0055,33.6742 16,31.5499L 16,37L 13,34L 13,26L 21,26L 24,29L 18.4097,29C 19.783,30.5344 21.7787,31.5 24,31.5 Z "/> 
       </DataTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 

そしてContentControlにタイプ(または誘導体)とスタイルを使用します:

<ContentControl Style="{StaticResource MyIcon}" Width="20" Height="20" Grid.Row="0"/> 

すべてのスタイルをすることができ、私は再利用しようとしているアイコンの

例いくつかのリソース辞書の中で: これはかなり有益な記事です: http://blogs.infosupport.com/tips-for-effective-usage-of-resource-dictionaries-in-silverlight-and-wpf/

+0

この回答は良いです、私はちょうどそのようなもののために後でユーザーのやりとりを与えるためにボタンを使用する習慣があります。 ContentControlはあなたの友人です。 –

+0

私は前にこのアプローチに問題がありました。具体的には、Blendはパスデータを正しくロードしたくないようです。残念ながら、私はよりよい解決策を持っていません。 –

関連する問題