2012-01-26 21 views
0

は、私は本当にそれが私が探している効果を達成しますListView(私は何か他のものを使用することに開いているを使用してメニューを構築しているよ。私がしたいと思います見てエミュレート以下である。ここで丸い角を持つ `ListView`メニューをスタイリング

Google Calendar Menu

私は現在、私のXAMLのために持っているものである。

<ListView 
     ItemsSource="{Binding Decisions}" 
     SelectedItem="{Binding SelectedDecision}" 
     HorizontalAlignment="Left" 
     BorderThickness="0" 
     Width="350" 
     FontSize="12"> 
     <ListView.ItemsPanel> 
      <ItemsPanelTemplate> 
       <WrapPanel 
        Width="{Binding (FrameworkElement.ActualWidth), RelativeSource={RelativeSource AncestorType=ScrollContentPresenter}}" /> 
      </ItemsPanelTemplate> 
     </ListView.ItemsPanel> 
     <ListView.ItemTemplate> 
      <DataTemplate> 
       <Border 
        BorderThickness="1" 
        BorderBrush="#DDD" 
        CornerRadius="2"> 
        <TextBlock 
         Text="{Binding Converter={StaticResource DecisionTypeNameConverter}}" 
         Padding="8" 
         Background="#EEE" /> 
       </Border> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 

私は項目を選択するまでこれは大丈夫探してメニューを作成します。項目が選択されると、それがされ醜いダークブルーに囲まれています。この外観を再現します(グラデーションエフェクトは不要です)。

答えて

1

あなたがSelectedItemを追跡する必要がありますか?

ない場合、私はItemsControl

ので、あなたはそれが表示されないように、選択した項目のブラシの色を上書きする必要がある場合は使用することをお勧めします。これはシステムカラーで、通常は次のように上書きします:

<ListView.Resources> 
    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent" /> 
    <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent" /> 
</ListView> 
+0

私は 'SelectedItem'を必要とし、ブラシを美しく改変します。これはもう少しですが、アイテムが選択されると、私は自分の背景(たとえば)のスタイルをどのように設定しますか?私は 'ListViewItem'に対して' IsSelected'が 'True'のときにトリガを持っています。これは私の' Border'要素の背景色を変更したいのです。私のトリガーでプロパティを 'Border.Background'に設定することはそのトリックをしていません。 – Nosila

+1

@ Nosilaあなたの ''タグで 'Background =" {TemplateBinding Background} "を設定してみてください。 'IsSelected'が真であるかどうかに基づいて背景を設定する' ListViewItem'スタイルにスタイルトリガを設定することができます。 – Rachel

+0

どうもありがとうございました。 :D – Nosila

1

は、青色の選択矩形を防止するためには、ItemTemplateにするのではなく、ItemContainerStyleを設定する必要があります。 ListViewItemの既定のスタイル、特に「Selected」ビジュアルステートについては、MSDN ListView Styles and Templatesを参照してください。

+0

ありがとうございました。それを見てみましょう。 – Nosila