1

我在 WPF 用户控件中使用 DevExpress LookUpEdit 组件。我的问题是弹出矩形总是比 PopupContentTemplate 中项目的内容大得多。我似乎找不到管理这个的属性,或者我可能会不正确地使用控件(?)。

谢谢

在此处输入图像描述

<UserControl xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"  
    x:Class="FTI_Opp_WPF.Views.UserControls.ViewSelector"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    mc:Ignorable="d">
    <UserControl.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary
                    Source="../../Common/Styles.xaml" />
                <ResourceDictionary
                    Source="../../Common/Strings.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </UserControl.Resources>

    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="auto"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>

        <Label Grid.Column="0" FontSize="12" Foreground="gray" Margin="0,-2,1,0">View:</Label>

        <dxg:LookUpEdit
            Grid.Column="1"
            dx:ThemeManager.ThemeName="MetropolisLight"
            Name="viewLookupEdit"
            AutoPopulateColumns="False"
            AutoComplete="True"
            IncrementalFiltering="True"
            ImmediatePopup="True"
            IsReadOnly="True"
            HorizontalAlignment="Right"
            VerticalAlignment="Top"
            Text="{Binding SelectedViewName}"
            ShowSizeGrip="false"
            MinWidth="200">
            <dxg:LookUpEdit.PopupContentTemplate>
                <ControlTemplate>
                    <StackPanel Orientation="Vertical" Height="auto">
                        <ListBox Name="lstMain" 
                                 ItemsSource="{Binding Path=GridViews}" 
                                 HorizontalAlignment="Stretch"
                                 BorderThickness="1"
                                 MouseUp="OnRowMouseUp">
                            <ListBox.ItemContainerStyle>
                                <Style
                                    TargetType="{x:Type ListBoxItem}">
                                    <Setter Property="BorderThickness">
                                        <Setter.Value>1</Setter.Value>
                                    </Setter>
                                    <Setter
                                        Property="Template">
                                        <Setter.Value>
                                            <ControlTemplate
                                                TargetType="{x:Type ListBoxItem}">
                                                <Grid Name="gridView" Height="25">
                                                    <Grid.ColumnDefinitions>
                                                        <ColumnDefinition Width="14"/>
                                                        <ColumnDefinition Width="*"/>
                                                    </Grid.ColumnDefinitions>

                                                    <Image Grid.Column="0"
                                                        Margin="0,-2,0,0"
                                                        Visibility="Visible"
                                                        Source="..\..\Images\globe.png"
                                                        Height="12"
                                                        Width="12" />

                                                    <TextBlock 
                                                        Margin="2,3,0,0" 
                                                        Grid.Column="1" 
                                                        Name="viewName" 
                                                        VerticalAlignment="Stretch"  
                                                        Text="{Binding Path=Name}"/>
                                                </Grid>
                                                <ControlTemplate.Triggers>
                                                    <Trigger
                                                        Property="IsMouseOver"
                                                        Value="true">
                                                        <Setter
                                                            TargetName="gridView"
                                                            Property="Background" Value="{Binding Converter={StaticResource StyleConverter},ConverterParameter=HOVER_BACKGROUND_COLOR}">
                                                        </Setter>
                                                        <Setter
                                                            TargetName="viewName"
                                                            Property="Foreground" Value="White">
                                                        </Setter>
                                                        <Setter
                                                            TargetName="viewName"
                                                            Property="FontWeight" Value="BOLD">
                                                        </Setter>
                                                    </Trigger>
                                                </ControlTemplate.Triggers>
                                            </ControlTemplate>
                                        </Setter.Value>
                                    </Setter>

                                    <Style.Triggers>
                                        <DataTrigger
                                            Binding="{Binding Path=IsEnabled}"
                                            Value="False">
                                            <Setter
                                                Property="IsEnabled"
                                                Value="{Binding Path=IsEnabled}" />
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>
                            </ListBox.ItemContainerStyle>
                        </ListBox>
                        <Button
                            Name="btnAdvanced"
                            Margin="10,0,0,0"
                            Style="{StaticResource Link}"
                            Content="manage views"
                            Click="OnManageViewsClick" />

                    </StackPanel>
                </ControlTemplate>
            </dxg:LookUpEdit.PopupContentTemplate>
        </dxg:LookUpEdit>
    </Grid>
</UserControl>
4

1 回答 1

0

DX 不提供“自动调整大小以弹出内容”功能。您需要使用 PopupMinHeight / PopupMaxHeight / PopupHeight。

请参阅此链接: http: //www.devexpress.com/Support/Center/p/Q428449.aspx

于 2013-02-18T11:25:01.190 回答