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"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM