2016-01-12 5 views
0

Je souhaite inclure une image directement dans un modèle ComboBox.Windows Phone 8.1 Style ComboBox Image

Je trouve cette partie du code et je crois qu'il est là où je le mettrais:

<Button x:Name="FlyoutButton" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" FontWeight="Normal" FlowDirection="{TemplateBinding FlowDirection}" FontSize="{ThemeResource ContentControlFontSize}" HorizontalAlignment="Stretch" HorizontalContentAlignment="Left" MinHeight="{ThemeResource ComboBoxItemMinHeightThemeSize}" Padding="6.5,0,0,0" Grid.Row="1"> 
    <ContentPresenter x:Name="ContentPresenter" Margin="0,0.8,0,0" MinHeight="32.5"> 
     <TextBlock x:Name="PlaceholderTextBlock" Margin="0" Style="{StaticResource ComboBoxPlaceholderTextBlockStyle}" Text="{TemplateBinding PlaceholderText}"/> 
    </ContentPresenter> 
</Button> 

Je ne peux pas mettre une image à l'intérieur ContentPresenter parce qu'il dit que je ne peux mettre « Contenu » une fois .

Si je fais quelque chose comme:

<ContentPresenter x:Name="ContentPresenter" Margin="0,0.8,0,0" MinHeight="32.5"> 
    <StackPanel Orientation="Horizontal"> 
     <TextBlock x:Name="PlaceholderTextBlock" Margin="0" Style="{StaticResource ComboBoxPlaceholderTextBlockStyle}" Text="{TemplateBinding PlaceholderText}"/> 
     <Image Source="ms-appx:///Assets/Arrow.png" /> 
    </StackPanel> 
</ContentPresenter> 

Il fonctionne en fait, mais je reçois une erreur dans ma XAML page d'affichage: «Pas de composants installés ont été détectés ne peut pas résoudre TargetName PlaceholderTextlock. ». Et aussi l'image disparaît après que je sélectionne un article.

J'aimerais recevoir des conseils.

Répondre

0

Je crois que vous voulez définir les éléments à l'intérieur de la zone de liste déroulante pour avoir l'image avec le bloc de texte. Dans ce cas, vous devez définir le ItemTemplate du combobox comme celui-ci

<ComboBox Name="hik" ItemTemplate="{StaticResource cmbx}"> 

Et dans vos ressources de page que vous pouvez définir le modèle d'élément pour les éléments de zone de liste déroulante comme celui-ci

<DataTemplate x:Key="cmbx"> 
    <StackPanel Orientation="Horizontal" Background="Aqua"> 
     <TextBlock HorizontalAlignment="Left" Margin="0,0,0,0" Foreground="Black" TextWrapping="Wrap" Text="Some Text" VerticalAlignment="Top"/> 
     <Image Source="/Assets/1.png" Stretch="Uniform" Height="100" Width="100" /> 
    </StackPanel> 
</DataTemplate> 

Une fois cela fait quand vous exécutez sur en cliquant sur la liste déroulante vous pouvez voir la liste avec l'image

enter image description here

Hope this helps!

+0

Pas exactement ce que je voulais mais ça m'a aidé un peu. J'ai eu ce que je voulais finalement. Je vous remercie. –

+0

Vous pouvez Upvote alors :) – CodeNoob

+0

Je l'ai fait mais: "Merci pour les commentaires! Une fois que vous avez gagné un total de 15 points de réputation, vos votes changeront le score d'article affiché publiquement." - Stackoverflow –