日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

WPF程序模彷Windows7的桌面任务栏

發(fā)布時間:2025/3/17 windows 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WPF程序模彷Windows7的桌面任务栏 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

這個程序模彷了Windows7的桌面任務(wù)欄,當(dāng)在桌面上雙擊某個快捷方式時,將打開一個新的子界面,并且在任務(wù)欄里創(chuàng)建一個鏈接到此界面的任務(wù)欄圖標(biāo),將鼠標(biāo)移動到任務(wù)欄上的圖標(biāo)時,將Popup出界面的實(shí)時圖像縮略圖,單擊任務(wù)欄圖標(biāo)時,可讓界面最大化或最小化,界面如下所示,

desk.jpg(118.63 K)
9/8/2010 8:59:50 AM



做這個任務(wù)欄界面縮略圖時,使用VisualBrush將子界面的實(shí)時圖像填充到Rectangle

Rectangle emptyRectangle = new Rectangle
{
Width = 250D,
Height = 130D,
Fill = new VisualBrush { Visual = child },
Margin = new Thickness(2)
};
? 復(fù)制代碼

又分別使用了兩個Border來模彷Windows7任務(wù)欄縮略圖的圓角
使用圓角

//給任務(wù)欄的Popup界面縮略圖應(yīng)用圓角
Border visualBorder = new Border
{
BorderBrush = Brushes.Transparent,
BorderThickness = new Thickness(1),
CornerRadius = new CornerRadius(10),
Margin = new Thickness(10),
Height = 150D,
Width = 270D,
Child = emptyRectangle,
HorizontalAlignment = HorizontalAlignment.Center,
VerticalAlignment = VerticalAlignment.Center,
Background = this.FindResource("transparentColor")
as LinearGradientBrush
};
//對任務(wù)欄的Popup界面縮略圖的背景應(yīng)用圓角
Border host = new Border
{
BorderBrush = Brushes.Transparent,
BorderThickness = new Thickness(1),
CornerRadius = new CornerRadius(8),
Child = visualBorder,
HorizontalAlignment = HorizontalAlignment.Center,
VerticalAlignment = VerticalAlignment.Center,
Background = this.FindResource("thumbnailBackground")
as ImageBrush
};
? 復(fù)制代碼

定義一個ToolTip用來宿主界面的縮略圖
ToolTip

//添加一ToolTip,用來宿主子界面的宿略圖
ToolTip visualToolTip = new ToolTip
{
Content = host,
Background = Brushes.Transparent,
BorderBrush = Brushes.Transparent,
Placement = PlacementMode.Top,
HorizontalContentAlignment = HorizontalAlignment.Center,
VerticalContentAlignment = VerticalAlignment.Center,
HasDropShadow = false,
VerticalOffset=3
};
//設(shè)計ToolTip的Popup延遲時間為20ms
ToolTipService.SetInitialShowDelay(thumbnail, 20);
thumbnail.ToolTip = visualToolTip;
? 復(fù)制代碼

定義事件,子界面關(guān)閉時,從任務(wù)欄中移除此界面在任務(wù)欄上的圖標(biāo),當(dāng)在任務(wù)欄圖標(biāo)上單擊鼠標(biāo)時,實(shí)現(xiàn)界面的最大化或者最小化
定義事件

//當(dāng)打開的子界面關(guān)閉時需從任務(wù)欄移除此界面在任務(wù)欄上的圖標(biāo)
child.Closed += delegate
{
this.statusBar.Children.Remove(hostBorder);
};
//在任務(wù)欄上單擊任務(wù)圖標(biāo)時,最大化或者最小化子界面
hostBorder.MouseLeftButtonDown += delegate(object sender, MouseButtonEventArgs e)
{
if (e.ClickCount == 1)
{
if (child.WindowState == WindowState.Minimized)
{
//正常顯示子界面
child.WindowState = WindowState.Normal;
child.Topmost = true;
}
else
//最小化子界面
child.WindowState = WindowState.Minimized;
}
};
?

這個程序?qū)崿F(xiàn)起來很簡單,但需要注意的是往任務(wù)欄里添加子界面任務(wù)欄圖標(biāo)時,應(yīng)該以從上往下的順序添加,這樣可以避免重復(fù)Rendering 邏輯樹的子葉點(diǎn)。
?

新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎!定制產(chǎn)品紅包拿不停!

總結(jié)

以上是生活随笔為你收集整理的WPF程序模彷Windows7的桌面任务栏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。