2011-01-13 25 views
7

मैं साधारण खिड़की है। Screenshot सूची स्क्रीन के बजाय Combobox के तहत ऊपरी बाएँ कोने में प्रकट होता है: यह जब मैं ComboBox क्लिक करें क्या होता है।सी # अजीब WPF 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> 
+0

यह इस से संबंधित हो सकता: http://stackoverflow.com/questions/1998024/wpf-combobox-dropdown-part-appears-in-the-wrong-place – MarcelDevG

+2

मेरे लिए ठीक काम करता है। आपके पास कोड में क्या है? –

+0

@ एंड्रेई पाना ऐसा हुआ जब मैंने लोड विंडो को दूसरे से खोल दिया। मुझे वास्तव में इसके लिए ठीक करने की ज़रूरत है। – Hooch

उत्तर

5
इसके बजाय लोडेड घटना में सीधे इसे खोलने के लिए, बस इसे खोलने के लिए डिस्पैचर पर एक और संदेश कतार के

+0

+1 केंट बूगार्ट। – user7116

+0

हां, यह काम कर रहा है। –

1

मैं बिल्कुल इस में चलाया, लेकिन WPF ComboBox DropDown part appears in the wrong place पर एक उदाहरण जो मेरे लिए काम किया था। रुचि पाठक वहां मेरी टिप्पणी का विचार करने हेतु कर सकते हैं, लेकिन यहां का टुकड़ा है (ध्यान दें: WindoBaseLoadedHandler "लोडेड =" XAML में निर्दिष्ट हैंडलर है):

protected void WindowBaseLoadedHandler(object sender, RoutedEventArgs e) 
{ 

... कोड की गैर जरूरी लाइनों को हटा दिया। ..

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; 
     })); 
    } 
संबंधित मुद्दे