Как мне создать собственный ListBoxItem с C # и WPF? - PullRequest
0 голосов
/ 16 октября 2019

Я изучаю C # и WPF. Теперь я хочу сделать настроенный ListBoxItem. С моим собственным стилем. Содержит несколько текстовых блоков и изображения. Как мне этого добиться?

Я пытался получить класс из ListBoxItem, но это не работает. Я также создал стиль с ControleTemplate, но не могу понять, как я могу изменить свойство Text для TextBlocks внутри шаблона.

<Style TargetType="ListViewItem">            
            <Setter Property="Background" Value="White"/>
            <Setter Property="Height" Value="75"/>
            <Setter Property="Template">     
                <Setter.Value>
                    <ControlTemplate x:Name="test" TargetType="{x:Type ListViewItem}">
                        <Grid Background="{TemplateBinding Background}" Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" Margin="0,2">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="100"/>
                                <ColumnDefinition Width="*"/>
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="25"/>
                                <RowDefinition Height="25"/>
                                <RowDefinition Height="*"/>
                            </Grid.RowDefinitions>

                            <StackPanel Grid.Column="0" Grid.RowSpan="3" VerticalAlignment="Center" HorizontalAlignment="Center" Width="80" Height="{TemplateBinding Height}">
                                <StackPanel.Background>
                                    <ImageBrush ImageSource="media/pictures/noImage.png"/>
                                </StackPanel.Background>
                            </StackPanel>

                            <TextBlock x:Name="lbl_Heading" Text="HowToAccessThisProperty" Grid.Column="1" Grid.Row="0" FontSize="14" FontWeight="Bold" VerticalAlignment="Center"/>
                            <TextBlock Name="lbl_Description" Text="HowToAccessThisProperty" Grid.Column="1" Grid.Row="1" FontSize="12" VerticalAlignment="Center"/>
                            <TextBlock Name="lbl_FurtherInfo" Text="HowToAccessThisProperty" Grid.Column="1" Grid.Row="2" FontSize="10" VerticalAlignment="Center"/>

                            <ContentPresenter/>
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

Спасибо:)

...