0

私は自分の問題に対する答えをこのウェブサイトで提供されているすべての答えを調べましたが、実用的な解決策を見つけることができませんでした。

ItemsSourceプロパティを使用してクラスにバインドされたコンボボックスがあります。

クラス定義は次のとおりです。

public class DataSource
{
    public string DisplayField { get; set; }
    public string ValueField { get; set; }
}

ComboBoxは、DisplayMemberPath="DisplayField"およびSelectedValuePath="ValueField"を使用してデータを表示するようにバインドされています...これはコードビハインドで行われ、ウィンドウのロード時にロードされます。

ComboBoxは次のように定義されています。

<ComboBox Grid.Row="0" Grid.Column="1" Margin="5 5 5 0" Name="releaseHoldDropDown" Width="100"/>  

ドロップダウンの値が「リリース」に変わった場合、背景を緑に、前景を白に変更する方法が必要です。

ドロップダウンの値が「保留」に変わった場合は、背景を赤に、前景を白に変更する必要もあります。

参考:ExpressionLight.xamlテーマを使用して、アプリケーション全体のスタイルを設定しています。

補足として、すべてのコンボボックスの背景をグレーからホワイトに変更して、読みやすくする方法も必要です。したがって、ExpressionLight.xamlを変更する必要がありますが、これらの変更を行うために編集する部分がわかりません。

どんな助けでも感謝されます。

ありがとうございました

4

3 に答える 3

0

背景色(白のまま)ではなく前景色のみを変更したいので、releaseHoldDropDown_SelectionChangedイベントで使用します

private void releaseHoldDropDown_SelectionChanged(object sender, FooBar e)
{
   releaseHoldDropDown.ForeGround = new SolidColorBrush(Colors.White);

   DataSource ds = (DataSource)releaseHoldDropDown.SelectedItem;

   if (ds.DisplayField == "Release")
        releaseHoldDropDown.Background = new SolidColorBrush(Colors.Green);
   else if(ds.DisplayField == "Hold")
        releaseHoldDropDown.Background = new SolidColorBrush(Colors.Red);
}

とバディ私はあなたが私にExpressionLight.xamlを与えることができればあなたを助けることができます。それなら私だけが助けることができます

于 2012-05-09T01:25:42.980 に答える
0

style.triggerを使用してみませんか?

        <ComboBox.Style>
            <Style TargetType="ComboBox">
                <Setter Property="Background" Value="Transparent"/>
                <Setter Property="Foreground" Value="Black"/>
                <Style.Triggers>
                    <Trigger Property="SelectedValue" Value="Release">
                        <Setter Property="Background" Value="Green"/>
                        <Setter Property="Foreground" Value="White"/>
                    </Trigger>
                    <Trigger Property="SelectedValue" Value="Hold">
                        <Setter Property="Background" Value="Red"/>
                        <Setter Property="Foreground" Value="White"/>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </ComboBox.Style>

これはあなたのスタートかもしれません

于 2012-05-09T06:53:33.653 に答える
0

テンプレートコントロールの必要な色を以下のように変更しようとしましたか?

<ComboBox x:Name="comboBox"
            ItemsSource="{Binding Items}"
            Margin="0,0,0,10"
            Background="White">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <Grid Background="White">
                <TextBlock Foreground="Black" Text="{Binding Name}"/>
            </Grid>    
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>
于 2017-01-30T00:25:49.050 に答える