XAML - 自定义自定义组合框的项目

时间:2013-07-16 00:44:43

标签: wpf xaml controltemplate

我有以下代码:

<Style x:Key="ComboBoxControlTemplate" TargetType="ComboBoxe">
    <Setter Property="FontSize" Value="25"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type ComboBox}">
                <Grid>
                    <TextBox 
                        x:Name="PART_EditableTextBox" 
                        Template="{StaticResource TextBoxBaseControlTemplate}" 
                        FontSize="25" 
                        FontFamily="{StaticResource CommonFont}" 
                        FontWeight="Light"
                        TextChanged="EmployeeField_TextChanged"
                        GotFocus="EmployeeField_OnGotFocus"
                        LostFocus="EmployeeField_OnLostFocus"/>
                    <ContentPresenter Name="ContentSite" IsHitTestVisible="False"
                        Content="{TemplateBinding SelectionBoxItem}"
                        ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}"
                        ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}"
                        Margin="3,3,23,3"
                        VerticalAlignment="Center"
                        HorizontalAlignment="Left" />

                    <Popup 
                        Name="Popup"
                        Placement="Bottom"
                        IsOpen="{TemplateBinding IsDropDownOpen}"
                        AllowsTransparency="True" 
                        Focusable="False"
                        PopupAnimation="Slide">

                        <StackPanel Name="DropDown" SnapsToDevicePixels="True" IsItemsHost="True" Background="#FFEEEEEE" />
                    </Popup>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

但是有一个小问题。包含StackPanel实际项目的ComboBox会在每个项目周围显示填充或某种边距。我对DataTemplate项目有一个单独的ComboBox,其中包含每个项目下方的边框。但由于存在上述填充或其他内容,边框不会一直延伸到Popup。我需要一个延伸整个过程的边框。 此外,我需要能够指定当用户将鼠标悬停在项目上时显示的颜色和边框。

0 个答案:

没有答案