1. 程式人生 > >wpf 懸浮窗口的實現

wpf 懸浮窗口的實現

text ica ext 收獲 運行 屏蔽 .html www. 並不會

原文:wpf 懸浮窗口的實現

又到了寫點東西的時候,因為有了新的收獲,所以用隨筆來記錄下自己的成長。話不多說,正入主題。

最近又遇到一個新的需求,有一組控件,需要懸浮顯示在面板的邊緣上,剛開始的時候,是不顯示的,點擊後顯示,然後再次點擊,隱藏。就這麽一個功能,折騰了一天。

實現的方法很多,本次使用了DevExpress裏面的DockLayoutManager控件。從DevExpress的官網上下載了一個Demo,然後學習了下。DevExpress的控件使用,搜索資料好像不多,當然也可能是我的搜索方法不對。

<Window 
        xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:dxdo="http://schemas.devexpress.com/winfx/2008/xaml/docking" xmlns:dxcore="http://schemas.devexpress.com/winfx/2008/xaml/core" xmlns:dxmvvm="http://schemas.devexpress.com/winfx/2008/xaml/mvvm
" x:Class="CreateAutoHiddenPanels.Window1" Title="Window1" Height="300" Width="640" > <Grid> <dxdo:DockLayoutManager Margin="12" x:Name="dockManager1" dxcore:ThemeManager.ThemeName="Office2010Blue" AutoHideExpandMode="MouseDown" > <dxdo:DockLayoutManager.AutoHideGroups> <dxdo:AutoHideGroup DockType="
Bottom"> <dxdo:LayoutPanel x:Name="paneFindResults" Caption="Find Results" ShowCloseButton="False" ShowControlBox="False" ShowMaximizeButton="False" ShowPinButton="False" CaptionVerticalAlignment="Stretch" CaptionHorizontalAlignment="Stretch" TextWrapping="WrapWithOverflow" AllowDockToDocumentGroup="False" CaptionWidth="150" ItemWidth="150" AllowMaximize="False" AllowFloat="False" CaptionImage="Image/right.png" CaptionImageLocation="AfterText" > <Grid> <TextBlock/> </Grid> </dxdo:LayoutPanel> </dxdo:AutoHideGroup> </dxdo:DockLayoutManager.AutoHideGroups> </dxdo:DockLayoutManager> </Grid> </Window>

運行效果:

點擊FindResults後,出現FindResults窗口。

技術分享圖片

這裏需要的註意點:

1、 點擊最下面的FindResults,可以顯示或者隱藏FindResults窗口,為了實現該功能

需要把dockManager1的AutoHideExpandMode設置成"MouseDown"。

2、顯示出來的FindResults窗口的標題,點擊後,並不會隱藏,我的需求是不顯示。

所以需要paneFindResults的ShowCaptionImage 設置成False。

3、為了防止雙擊顯示出來的FindResults窗口會最大化,需要屏蔽到下面的兩個屬性。

AllowMaximize="False"
AllowFloat="False"

wpf 懸浮窗口的實現