做網站用動易siteweaver cms還是phpcms精準客戶信息一條多少錢
一、透明窗口全屏時,鼠標不穿透
問題描述
我有一個透明窗口,它是一個全屏置頂窗口,窗口里面有一個工具條,可以通過鼠標拖動工具條的位置,程序啟動后,在不點擊工具條的時候,鼠標是可以穿透的,當點擊一次工具條后,在點擊其余透明的地方,就不能穿透了
問題原因分析
通過排查,導致這個原因是窗口在初始化的時候設置了ResizeMode=“NoResize”,通過測試,設置為NoResize或者CanMinimize都存在問題
解決辦法
辦法1
取消窗口的ResizeMode設置或者顯示設置為:CanResize或者CanResizeWithGrip
辦法1遇到的問題
鼠標穿透已經沒有問題了 ,但是在拖動工具條或者鼠標從工具條上經過的時候,控件呈現(xiàn)顯示緩慢或者抖動的問題,體驗很不好,重新將ResizeMode還原,則沒有這個問題
辦法2(正確辦法)
窗口在初始化的時候,不設置ResizeMode參數(shù),在窗口的Loaded事件里面在設置ResizeMode:
public partial class MainWindow : Window{public MainWindow(){InitializeComponent();this.ResizeMode = ResizeMode.CanResize;this.Loaded+= OnLoaded;}private void OnLoaded(object sender, RoutedEventArgs e){this.ResizeMode = ResizeMode.NoResize;}}
通過這個方法設置后,既能解決鼠標穿透問題,也沒有發(fā)現(xiàn)拖動問題。
備注:
WPF程序在其它一些設置也會導致初始化和Loaded事件呈現(xiàn)出的結果不一樣,目前我已知的有著2個屬性:
- TopMost
- ResizeMode
建議:如果需要調整這些屬性,可以在Loaded事件里面再設置他們,這樣可以避免一些千奇百怪的問題。
一、窗口最小化或者隱藏后,再顯示后鼠標不穿透
問題描述
我有一個透明窗口,它是一個全屏置頂窗口,窗口里面有一個工具條,可以通過鼠標拖動工具條的位置,程序啟動后,正常操作后,窗口穿透狀態(tài)是正確的,但是當窗口最小化或者隱藏后,然后再顯示后,出現(xiàn)了鼠標不穿透的問題。
問題原因分析
問題發(fā)現(xiàn)在重新顯示窗口后
解決辦法
目前暫時沒有找到很好的解決這個問題的辦法,只能采用迂回策略,在需要隱藏或者最小化窗口時,采用隱藏窗口下的控件來處理。