2012-04-07 2 views
2

C#을 사용하여 메트로 앱의 콤보 상자에 색 목록을 추가하고 싶습니다. 사용자는 목록에서 특정 색을 선택하여 배경을 변경할 수 있습니다. http://www.c-sharpcorner.com/uploadfile/mahesh/how-to-load-all-colors-in-a-combobox-using-C-Sharp/메트로 앱의 콤보 박스에 색상을 추가하는 방법은 무엇입니까?

하지만 지하철 환경에 대한 포트를 할 수 없습니다 : 자료

확률 적 라이브러리는 여기에 간단한 데스크톱 앱을 달성 할 수있는 링크가

Windows.UI.Colors

입니다.

또한 색상 자체뿐만 아니라 목록 항목으로 색상 자체가 큰 플러스가 될 것입니다.

최대한 빨리 도와주세요 ... MSDN에서 또 다른 스레드 : http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/880a3b5b-e287-4cdc-a1ab-d1cd4a19aedb/

+0

작동하지 않습니다 추가 지하철? –

+0

RowlandShaw : 전혀 아닙니다. 제가 언급했듯이 라이브러리가 다르므로별로 할 수 없습니다. 또한 GetProperties()도 사용할 수 없습니다. 또한 XAML에는 이 있지만 그 사용법을 알지 못합니다. –

답변

2
<ComboBox x:Name="cbColorNames" Grid.Row="1" Height="40" 
     ItemsSource="{Binding Colors}" 
     SelectedItem="{Binding SelectedColorName, Mode=TwoWay}"> 
<ComboBox.ItemTemplate> 
    <DataTemplate> 
     <Grid Background="Black"> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="Auto"/> 
       <ColumnDefinition Width="*"/> 
      </Grid.ColumnDefinitions> 
      <Rectangle Width="35" Height="20" Fill="{Binding Name}" Margin="5,0"/> 
      <TextBlock Grid.Column="1" Margin="10,0,0,0" Text="{Binding Name}" Foreground="White"/> 
     </Grid> 
    </DataTemplate> 
</ComboBox.ItemTemplate> 

이는 XAML 파일입니다.

private static void LoadColors() 
{ 
    var t = typeof(Colors); 
    var ti = t.GetTypeInfo(); 
    var dp = ti.DeclaredProperties; 
    colors = new List<PropertyInfo>(); 
    foreach (var item in dp) 
    { 
     colors.Add(item); 
    } 
} 
private static List<PropertyInfo> colors; 
public List<PropertyInfo> Colors 
{ 
    get 
    { 
     if (colors == null) 
      LoadColors(); 
     return colors; 
    } 
} 

이것은 C# 코드입니다.

지원해 주셔서 감사합니다. & 도움.

3

이 코드는 나를 위해 작동 :

var colorsTypeInfo = typeof(Colors).GetTypeInfo(); 
var properties = colorsTypeInfo.DeclaredProperties; 
Dictionary<string, string> colours = new Dictionary<string, string>(); 
foreach (var dp in properties) 
{ 
    colours.Add(dp.Name, dp.GetValue(typeof(Colors)).ToString()); 
} 

을 반드시 다음과 같은 기준의이 그렇지 않으면 당신이 그 코드를 이식하는 거죠 얼마나

using System.Reflection; 
using Windows.UI; 
관련 문제