Список элементов контекстного меню WPF / контекстное меню, отображаемое за родителем - PullRequest
0 голосов
/ 05 марта 2011

Если установлено свойство ItemSource поля со списком, почему нажатие на выпадающий список в выпадающем списке не отображает список доступных элементов? Это может быть связано, но в рамках того же элемента управления любое пользовательское контекстное меню отображается за элементом управления:

XAML для этого элемента управления выглядит следующим образом:

 <Border Name="Border" Padding="5">
        <ScrollViewer VerticalScrollBarVisibility="Auto">
            <ScrollViewer.Resources>
                <Style TargetType="{x:Type CheckBox}">
                    <Setter Property="Padding" Value="8,0,0,0"/>
                    <Setter Property="VerticalAlignment" Value="Center"/>
                </Style>            
            </ScrollViewer.Resources>
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="*"/>
                </Grid.RowDefinitions>                          
                    <Grid Margin="5,4,0,4" >
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="20" />
                            <ColumnDefinition SharedSizeGroup="labelColumn1" />
                            <ColumnDefinition  SharedSizeGroup="labelColumn2" />
                            <ColumnDefinition SharedSizeGroup="dataEntryColumn" />
                            <ColumnDefinition  Width="30"/>
                            <ColumnDefinition  SharedSizeGroup="labelColumn2"/>
                            <ColumnDefinition SharedSizeGroup="dataEntryColumn" />
                            <ColumnDefinition MaxWidth="0" />
                        </Grid.ColumnDefinitions>
                        <Grid.RowDefinitions>
                            <RowDefinition MinHeight="23" />
                            <RowDefinition MinHeight="23" />
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="Auto"/>

                        </Grid.RowDefinitions>

                        <TextBlock Text="Geometry Type" VerticalAlignment="Center" Grid.Column="1" Grid.Row="0"/>                       
                        <ComboBox Grid.Column="3" Margin="6,1,0,1"   Grid.Row="0" Width="150"  
                                  Name="cmboGeometryTypes"   
                                  SelectedItem="{Binding GeometryType, Mode=TwoWay}"
                                  HorizontalAlignment="Left"   
                                  DisplayMemberPath="Name"                                   
                                  Grid.ColumnSpan="1"                                      
                                 />

                        <TextBlock Text="Symbol Type" 
                                   Grid.Column="1" Grid.Row="1" VerticalAlignment="Center"/>
                        <ComboBox
                            Name="cmboSymbolEditors"
                            SelectedItem="{Binding SymbolEditorViewModel, Mode=TwoWay}"
                            HorizontalAlignment="Left"   
                            DisplayMemberPath="Alias" 
                            Width="150"
                            Grid.Column="3" 
                            Margin="6,1,0,1" 
                            Grid.Row="1"                            
                            Grid.ColumnSpan="1"  />               
                </Grid>

                <Label Padding="10,0,0,0" Margin="10,0,0,3" Style="{StaticResource fadingLabelSeperatorStlye}" Grid.Row="1">
                    Editor
                </Label>
                <local:SymbologyEditorControl x:Name="editor" Grid.Row="2"/>                               
            </Grid>
        </ScrollViewer>
    </Border>

и наблюдаемый эффект проиллюстрирован ниже enter image description here

Как мне это исправить?

1 Ответ

0 голосов
/ 06 марта 2011

Была распространенная ошибка WPF, которая вызывала такое поведение любого пользовательского интерфейса типа Popup, отображаемого сзади, а не сверху, так что это может быть тем, что вы видите.Я не видел проблему в течение некоторого времени, но я не уверен, была ли она исправлена ​​или нет.Это связано с плохими видеодрайверами, поэтому вы можете видеть его только на определенных компьютерах, а не постоянно.

Было исправление, доступное из службы поддержки MS, но может быть проще переключить ваше приложение на использование программного рендеринга, а не.

...