2015-06-29 143 views
2

我剛剛升級3.5我的WPF應用程序的目標框架4.5和我的設置Top屬性代碼停止工作,也不會改變前值:WPF窗口Top屬性不會改變

this.Top=45; 

它將始終保持以前的值,從未更改爲45.
我沒有任何類型的動畫。
爲什麼它的行爲如此?

窗口XAML

<Window x:Class="SalesOrderLib.SalesOrderInquiry" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:Datepicker="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit" 
    xmlns:UI="clr-namespace:SalesOrderLib.Resources.UI" 
    xmlns:local="clr-namespace:SalesOrderLib" 
    xmlns:global="clr-namespace:SalesOrderLib.Common" 
    xmlns:validation="clr-namespace:SalesOrderLib.ValidationRules" 
    Background="{DynamicResource WinBackgroundBrush}" 
    Icon="Resources/Images/ToolBar/OrderInquiry.png" 
    Title="Sales Order - Inquiry Mode" 
    Height="630" 
    Width="1024" 
    WindowState="Normal" 
    ShowInTaskbar="True" 
    ResizeMode="CanResize" 
    WindowStyle="SingleBorderWindow" 
    WindowStartupLocation="Manual" 
    FocusManager.FocusedElement="{Binding ElementName=txtOrderNo}" 
    Loaded="Window_Loaded" 
    ContentRendered="Window_ContentRendered" 
    GotFocus="Window_GotFocus" 
    Closing="Window_Closing" 
    LocationChanged="Window_LocationChanged" 
    Activated="Window_Activated"> 

這裏是我嘗試設置Top屬性在後面的代碼:

private void Window_LocationChanged(object sender, EventArgs e) 
{ 
    try 
    { 
     if (this.Top < 55D) 
      this.Top = 55D; 
     if (this.Height > 120D) 
      this.lstBoxMediaNo.Height = (this.Height - 120D); //Set mediaNo PopUp height. 

     Thread.Sleep(25); //Allow window to refresh. 
    } 
    catch (Exception ex) 
    { 
     log.Error(String.Format(GlobalResources.MsgException, ex.ToString(), GetType().Name, MethodBase.GetCurrentMethod().Name)); 
     MessageBox.Show(ex.Message, GlobalResources.Error, MessageBoxButton.OK, MessageBoxImage.Error); 
    } 
} 
+1

除非是**實際答案,否則不要「回答」自己。只需更新帖子以包含* new *文本。 – OmegaMan

+0

你在哪裏修改'Top'?代碼隱藏?介意展示它? – almulo

+0

後面的代碼:private void Window_LocationChanged(object sender,EventArgs e) { try if(this.Top <55D) this.Top = 55D; Thread.Sleep(25); //允許窗口刷新。 } catch { } } – Tariq

回答

0

確定WindowStartupLocation設置爲Manual?這是它不應該尊重你的代碼的唯一原因。

+0

它被設置爲手動。 – Tariq

+0

這裏是Xaml窗口的標籤: – Tariq