wpf 동적(c# 코드) ListBoxItem 스타일 지정

6083 단어 wpf

wpf 동적(c# 코드) ListBoxItem 스타일 지정


나는 자원 사전ListBox.xamlListBoxItem의 양식을 설정했는데 다음과 같다.
    
    <Style TargetType="{x:Type ListBoxItem}" x:Key="ListItemStyle">
        <Setter Property="Height" Value="45"/>
        <Setter Property="Foreground" Value="{StaticResource LightWhite}"/>
        
            
                Type ListBoxItem}">
                    <Grid x:Name="Item">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="225" />
                            <ColumnDefinition Width="*"/>
                        Grid.ColumnDefinitions>

                        --Medicine Name-->
                        <Grid Grid.Column="0">
                            <ContentPresenter Margin="2 0 0 0" VerticalAlignment="Center"/>
                        Grid>
                    Grid>

                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="true">
                            <Setter Property="Background" TargetName="Item" Value="#2D2D30"/>
                        Trigger>
                    ControlTemplate.Triggers>

                ControlTemplate>
            Setter.Value>
        Setter>
    Style>

그중MainWindow.xaml에서ListBox는 이렇게 썼다.
<Grid Grid.Row="0">
    <ListBox Style="{StaticResource SearchResultBoxStyle}" x:Name="FunctionList"/>
Grid>

그 다음에 대응하는 Click 이벤트에서 동적 생성ListBoxitem 항목을 설정하고 그 스타일을 설정해서 우리에게 스타일을 정의해 줍니다. 이렇게 하면 다음과 같습니다.
        private void RadioButton_Click(object sender, RoutedEventArgs e)
        {
            var win =(ListBox)this.GetTemplateChild("FunctionList");//         
            win.Items.Clear();//     

            ListBoxItem item = new ListBoxItem();//      
            item.Content = "      ";//         
            item.Style=FindResource("ListItemStyle") as Style;//            ListItemStyle

            win.Items.Add(item);//         

            ListBoxItem item1 = new ListBoxItem();//      
            item1.Content = "      ";//         
            item1.Style = FindResource("ListItemStyle") as Style;//            ListItemStyle

            win.Items.Add(item1);//         
        }

좋은 웹페이지 즐겨찾기