2

私は窓の電話7アプリケーションを開発しています。私はウィンドウの電話7アプリケーションに新しいです。私は自分のアプリケーションにリストボックスを持っています&私はボタンコントロールを動的に作成し、リストボックスコントロールに追加しています。ここでは、動的に作成された各ボタンコントロールの背景イメージを設定します。私は、動的に作成したボタンコントロールの背景画像を設定したい動的にこの方法の代わりに、背景色でボタンコントロールの背景色動的に作成されたボタンコントロールに背景イメージを設定するにはどうすればよいですか?

Button AlphabetButton = new Button(); 
       AlphabetButton.Background = new SolidColorBrush(Colors.Red); 

を設定するには、次のコードを使用しています。これを行う方法 ?上記の問題を解決するためのコードやリンクを教えてください。私が何か悪いことをしているなら、私を案内してください。

答えて

6

はこれを試してみてください。

Uri uri = new Uri("/images/someImage.png", UriKind.Relative); 
    BitmapImage imgSource = new BitmapImage(uri); 
    Image image = new Image(); 
    image.Source = imgSource; 
    AlphabetButton.Content = image; 

ImageBrush brush = new ImageBrush(); 
    brush.ImageSource = new BitmapImage(new Uri(@"Images/myImage.png", UriKind.Relative)); 
    AlphabetButton.Background = brush; 

別のオプションは、例えばのようなボタンのコンテンツを使用することです

イメージビルドアクションには注意してください。

0

より良いアプローチは、分離コードでのItemsSourceとしてリストを設定し、あなたがあなたのリストボックスに表示するPersonオブジェクトのリストを持って、たとえば言う...データバインディングを使用することです:

public class Person() 
{ 
    public string Name {get; set;} 
} 

var persons = new List<Person>(); 
// ... add some person objects here ... 
listBox.ItemsSource = persons 

<ListBox x:Name="listBox"> 
    <Listox.ItemTemplate> 
    <DataTemplate> 
     <Button Content={Binding Path=Name}/> 
    </DataTemplate> 
    </Listox.ItemTemplate> 
</ListBox> 

これは、一人一人の名前を表示するボタンのリストがレンダリングされます:あなたは

は、あなたがボタンとして一人一人をレンダリングするDataTemplateを供給することができXAML。画像が含まれるように、ボタンの内容を拡張し、各ボタンの画像を指定するには

<ListBox x:Name="listBox"> 
    <Listox.ItemTemplate> 
    <DataTemplate> 
     <Button> 
      <StackPanel Orientation="Horizontal"> 
      <TextBlock Text="{Binding Path=Name}"/> 
      <ImageText Source="{Binding Path=Image}"/> 
      </StackPanel> 
     </Button> 
    </DataTemplate> 
    </Listox.ItemTemplate> 
</ListBox> 

あなたはもちろん、あなたのPersonオブジェクトにImageSourceはプロパティを追加する必要があります:

public class Person() 
{ 
    public string Name {get; set;} 
    public ImageSource Image {get; set;} 
} 

もう1つの方法は、値コンバータを使用してPersonの一部のプロパティをイメージに変換することです。

Dynamic image source binding in silverlight

あなたは以下のとおりImageSourceはプロパティを持つボタンのサブクラスを作成することができます(私は個人的に最善の方法だと思うもの)バインディングを使用したくない場合は、次の

Creating an image+text button with a control template?

関連する問題