0

アプリケーションのComboBoxに色のリストを含めたくありませんが、このリストに透明な色を含めることはしません。リスト内の追加の色は、Colorsクラスのものである必要があります。私はネットで検索して、そのようなものを見つけます:

<ObjectDataProvider MethodName="GetType" 
ObjectType="{x:Type System:Type}" x:Key="colorsTypeOdp">
        <ObjectDataProvider.MethodParameters>
            <System:String>System.Windows.Media.Colors, PresentationCore,
        Version=3.0.0.0, Culture=neutral, 
        PublicKeyToken=31bf3856ad364e35</System:String>
        </ObjectDataProvider.MethodParameters>
    </ObjectDataProvider>
    <ObjectDataProvider ObjectInstance="{StaticResource colorsTypeOdp}"  
MethodName="GetProperties" x:Key="colorPropertiesOdp">
    </ObjectDataProvider>

<ComboBox Width="80" ItemsSource="{Binding Source={StaticResource colorPropertiesOdp}}">
                        <ComboBox.ItemTemplate>
                            <DataTemplate>
                                <StackPanel Orientation="Horizontal" Height="18" Margin="0,0,0,2">
                                    <Border BorderThickness="1" CornerRadius="2" 
              BorderBrush="Black" Width="50" VerticalAlignment="Stretch"
              Background="{Binding Name}"/>
                                    <TextBlock Text="{Binding Name}" Margin="8,0,0,0"/>
                                </StackPanel>
                            </DataTemplate>
                        </ComboBox.ItemTemplate>

                    </ComboBox>

誰もがこのタックを行う方法を知っていますか?助けてくれてありがとう。

4

1 に答える 1

0

ColorsColorクラスから独自のインスタンスのリストを作成し、このリストから色を除外することをお勧めします。次に、このリストをコンボボックスのプロパティにバインドできます。Colors.TransparentItemsSource

Colorクラスからインスタンスのリストを取得するにはColors、次のコードスニペットを使用できます。

PropertyInfo[] properties = typeof(Colors).GetProperties();

foreach (PropertyInfo property in properties)
   Color color = property.GetValue(null, null) as Color;
于 2012-05-01T19:02:03.150 に答える