我剛剛升級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);
}
}
除非是**實際答案,否則不要「回答」自己。只需更新帖子以包含* new *文本。 – OmegaMan
你在哪裏修改'Top'?代碼隱藏?介意展示它? – almulo
後面的代碼:private void Window_LocationChanged(object sender,EventArgs e) { try if(this.Top <55D) this.Top = 55D; Thread.Sleep(25); //允許窗口刷新。 } catch { } } – Tariq