又到了寫點東西的時候,因為有了新的收獲,所以用隨筆來記錄下自己的成長。話不多說,正入主題。
最近又遇到一個新的需求,有一組控件,需要懸浮顯示在面板的邊緣上,剛開始的時候,是不顯示的,點擊后顯示,然后再次點擊,隱藏。就這么一個功能,折騰了一天。
實現的方法很多,本次使用了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"