C # Strange Behavior Combobox WPF

I have a simple window. This is what happens when I click ComboBox: Screen shot The list appears in the upper left corner of the screen, not under the Combobox.

XAML:

<Window x:Class="WpfPortOfTestingCamera.VideoSettings" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Video Settings" WindowStartupLocation="CenterOwner" ResizeMode="NoResize" ShowInTaskbar="False" mc:Ignorable="d" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" SizeToContent="WidthAndHeight" d:DesignHeight="167"> <StackPanel Name="stackPanel1" VerticalAlignment="Top" HorizontalAlignment="Center"> <GroupBox Header="Settings" Name="groupBox1"> <Grid Name="grid1" VerticalAlignment="Center" HorizontalAlignment="Center"> <Grid.ColumnDefinitions> <ColumnDefinition Width="80*" /> <ColumnDefinition Width="175*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Label Content="Resolution:" Height="28" Name="label1" Margin="0" HorizontalAlignment="Left" VerticalAlignment="Center" /> <Label Content="Framerate:" Height="28" HorizontalAlignment="Left" Margin="0" Name="label2" VerticalAlignment="Center" Grid.Row="1" /> <ComboBox Grid.Column="1" Height="23" HorizontalAlignment="Left" Margin="0" Name="comboBox1" VerticalAlignment="Center" Width="150" SelectionChanged="comboBox1_SelectionChanged" /> <ComboBox Height="23" HorizontalAlignment="Left" Margin="0" Name="comboBox2" VerticalAlignment="Center" Width="150" Grid.Column="1" Grid.Row="1" SelectionChanged="comboBox2_SelectionChanged" /> </Grid> </GroupBox> <Label Name="labelSelectedSize" Content="Size @ FPS" /> <Button Name="button1" Content="Apply" Click="button1_Click" /> </StackPanel> </Window> 
+7
source share
2 answers

Instead of opening it directly in the Loaded event, just run another message in the dispatcher to open it.

+5
source

I came across exactly this and just posted an example in WPF Component ComboBox DropDown did not appear in the place that worked for me. An interested reader can go there to read my comment, but here's a snippet (NOTE: WindoBaseLoadedHandler is the "Loaded =" handler specified in XAML):

 protected void WindowBaseLoadedHandler(object sender, RoutedEventArgs e) { 

... non-essential lines of code removed ...

  if (DataContext != null) { Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() => { this.IsEnabled = false; LoginDlg loginDlg = new LoginDlg(); loginDlg.ShowDialog(); if (!loginDlg.Success) { /*----------------------------------- * Log on failed -- terminate app... *----------------------------------*/ ...termination logic removed... } this.IsEnabled = true; })); } 
+1
source

All Articles