2011-08-05 27 views
0

カスタマイズしようとしているコンボボックスに問題があります。それは、UserControlで、私はそのBorderBrushプロパティが透明にホワイトからマウスが上に(フェードイン/ボーナスになる)を変更したい。ComboBoxのハイライト表示

しかし、私は適切なトリガー構文を得ることができないようです...今は混乱していると思います。ここで

が問題のコンボボックスである:私は、全体ComboBox.Template部分をコメントアウトしていない場合

<ComboBox x:Name="comboEmiCategories" ItemsSource="{Binding}" Background="Transparent" Height="15px" Width="30px" BorderBrush="Transparent" Padding="-2"> 
        <ComboBox.Resources> 
         <sys:Double x:Key="{x:Static SystemParameters.VerticalScrollBarWidthKey}">0</sys:Double> 
        </ComboBox.Resources> 
        <ComboBox.ItemTemplate> 
         <DataTemplate> 
          <Image Source="{Binding}" Stretch="UniformToFill" Height="15px" Width="30px" Margin="0" /> 
         </DataTemplate> 
        </ComboBox.ItemTemplate> 
        <ComboBox.Template> 
         <ControlTemplate> 
          <ControlTemplate.Triggers> 
           <Trigger Property="ComboBox.IsMouseOver" Value="True"> 
            <Setter Property="ComboBox.BorderBrush" Value="White" /> 
           </Trigger> 
          </ControlTemplate.Triggers> 
         </ControlTemplate> 
        </ComboBox.Template> 
       </ComboBox> 

トリガーは、さらに悪い実際には、動作しない、コントロールが消えます。

主な目標は、画像を積み重ねるComboBoxを用意し、ユーザーがリストから1つを選択できるようにすることです。

ありがとうございました。

EDIT: Marioのスタイル内での解答は機能しますが、これを行う唯一の方法ですか?

答えて

0

以下のxamlをwindow/usercontrolのResourcesセクションに配置してください。

<Style x:Name="cbStyle" TargetType="ComboBox"> 
    <Setter Property="BorderBrush" Value="Transparent" /> 
    <Style.Triggers> 
     <Trigger Property="IsMouseOver" Value="True"> 
     <Setter Property="BorderBrush" Value="White" /> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

もちろん、このスタイルはComboBox要素で参照する必要があります。また、ControlTemplate内の何かをカットしてください。無駄です。

EDIT:次のようにコンボボックスの部分が見えるはずです。

<ComboBox x:Name="comboEmiCategories" ItemsSource="{Binding}" Height="15px" Width="30px" Style="{StaticResource cbStyle}" Padding="-2"> 
        <ComboBox.Resources> 
         <sys:Double x:Key="{x:Static SystemParameters.VerticalScrollBarWidthKey}">0</sys:Double> 
        </ComboBox.Resources> 
        <ComboBox.ItemTemplate> 
         <DataTemplate> 
          <Image Source="{Binding}" Stretch="UniformToFill" Height="15px" Width="30px" Margin="0" /> 
         </DataTemplate> 
        </ComboBox.ItemTemplate> 
       </ComboBox> 

はまた、あなたのユーザーコントロール内のスタイルdeclatarionを置きます。

+0

私は前にスタイルを試しましたが、とにかくあなたのことを試しました。私はApp.xamlに入れ、ComboBoxはエラーを投げました:リソース "cbStyle"を見つけることができないので、私はUserControlにスタイルを入れようとしましたが、ComboBoxを保持しているGridでも同じことが起こりました。 UserControlsに関する重要な情報が欠落しているようです... –

+0

今、私はStyle = "{StaticResource cbStyle}"を削除しました。スタイルを使用しています...使用するように指定していませんこれは名前付きリソースです。私は暗黙のスタイルが無名であることが必要だと思ったoO –

+0

それはxではない:名前、それはx:鍵...笑 –

関連する問題