您的位置:首页 > 编程语言 > C#

基于Visual C#2010开发Windows 7超级任务栏应用程序

2010-05-29 19:27 246 查看
Windows7的超级任务栏比起常规的windows任务栏主要做了下列改进

1、任务栏中的任务图标化,连开始菜单的按钮都显得跟任务栏中的图标差不多样式;

2、任务栏放弃了实时运行的概念,任务栏中开始变得像桌面,你可以把常用程序的图标放到任务栏上,当你需要使用这个程序的时候不需要回到桌面去点击快捷方式,直接在任务栏上点击就可以,当前正在运行的程序会比当前没有运行的程序在任务栏中多一个外框区分;

3、可以用WIN键+对应任务栏中图标的顺序数字来打开或者激活该任务;

4、默认同类任务进行合并,有合并的程序在任务栏中的图标有会根据合并的数量有相应的层数表现;

5、对于所有其他程序在托盘区的图标都会默认自动隐藏,可以进行图标和通知的自定义,隐藏的图标展开不再是在原任务栏,而是在上方会出现的一个单独框进行显示;

6、默认取消了快速启动栏;

7、将“显示桌面”的快捷方式变成了一个不起眼的置于任务栏最右边的小方块;

8、以媒体库代替了我的电脑,媒体库中列出视频、音乐、文档、图片四类;

这些改动虽然在技术上面不是什么新技术,但是能预见对于我们日常使用电脑会带来巨大的影响,它会改变我们的使用习惯,影响我们的电脑观念。对于这些改进所带来的影响总结为以下4点:

1、任务栏桌面化,任务栏集合了部分桌面的功能,桌面的重要性下降,连“返回桌面”的快捷方式都被移到最右边不起眼的角落了,大多数情况下用户操作在任务栏即可完成,不需要返回到桌面,桌面开始转成为了文档临时存放区域,这会带给用户一个新的体验感觉,“操作系统即桌面”转化成了“操作系统即任务栏”;

2、程序对于任务栏上的进一步支持显得更为重要,一些能够对新任务栏支持的更好的软件会给自己加分,比如能够像WINDOWS7中的WM那样支持在任务栏预览时操作这样的人性化设计更能获得用户的青睐;

3、托盘区变成真正的托盘区,用户没有主动自定义,程序没办法保持在托盘区露脸,甚至连通知都没办法。对于一些程序这是一件相当糟糕的事情,比如QQ,如果没自定义,声音提示没被注意的时候,新信息来了你是完全无法察觉的,当然这对某些刻意想隐藏自己踪迹的程序来说是个好消息;

4、用户减少了对桌面的依赖后,对任务栏的依赖程度加深。因为任务栏空间终归有限,他们会尝试将自己最常用的软件放在上面,这些软件的使用频率得到更高的提升。同时由于给用户带来“操作系统即任务栏”的感觉后,用户会花更少的时间进行系统的改进、软件的更替等操作,会更满足于任务栏中常用软件,这让老软件的用户忠诚度更高,新软件获取用户更加困难。软件之间的战争从“占领桌面”、占领“托盘区”转移到“占领任务栏”。

大家一定迫不及待的想针对Windows 7超级任务栏开发一个自己的应用吧,我们来亲自实验1个超级任务栏程序!

1.启动VS2010,创建一个winform程序,定制下列界面



插入相关代码,代码分析如下

using System;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using Microsoft.WindowsAPICodePack.Dialogs;
using Microsoft.WindowsAPICodePack.Taskbar;

namespace Microsoft.WindowsAPICodePack.Samples.TabbedThumbnailDemo
{
public partial class Form1 : Form
{
/// <summary>
//保持跟踪以前选定的标签,

/// </summary>
private TabPage previousSelectedPage = null;

//
private ThumbnailToolbarButton thumbButtonBack;
private ThumbnailToolbarButton thumbButtonForward;
private ThumbnailToolbarButton thumbButtonRefresh;

private ThumbnailToolbarButton thumbButtonCut;
private ThumbnailToolbarButton thumbButtonCopy;
private ThumbnailToolbarButton thumbButtonPaste;
private ThumbnailToolbarButton thumbButtonSelectAll;

/// <summary>
//滚动事件,记录相关状态
/// </summary>
private bool scrollEventAdded = false;

/// <summary>
/// 连接收藏栏窗口
/// </summary>
private FavoritesWindow favsWindow = null;

public Form1()
{
InitializeComponent();

//监听浏览器tab
tabControl1.Selecting += new TabControlCancelEventHandler(tabControl1_Selecting);
tabControl1.SelectedIndexChanged += new EventHandler(tabControl1_SelectedIndexChanged);

// 同步窗口变化
this.SizeChanged += new EventHandler(Form1_SizeChanged);

// Set our minimum size so the form will not have 0 height/width when user tries to resize it all the way
this.MinimumSize = new Size(500, 100);

// 显示收藏栏
favsWindow = new FavoritesWindow(this);
favsWindow.Show();

// Create our Thumbnail toolbar buttons for the Browser doc
thumbButtonBack = new ThumbnailToolbarButton(Properties.Resources.prevArrow, "Back");
thumbButtonBack.Click += new EventHandler<ThumbnailButtonClickedEventArgs>(thumbButtonBack_Click);

thumbButtonForward = new ThumbnailToolbarButton(Properties.Resources.nextArrow, "Forward");
thumbButtonForward.Click += new EventHandler<ThumbnailButtonClickedEventArgs>(thumbButtonForward_Click);

thumbButtonRefresh = new ThumbnailToolbarButton(Properties.Resources.refresh, "Refresh");
thumbButtonRefresh.Click += new EventHandler<ThumbnailButtonClickedEventArgs>(thumbButtonRefresh_Click);

//创建我们的缩略图RichTextBox的doc的工具栏按钮
thumbButtonCut = new ThumbnailToolbarButton(Properties.Resources.cut, "Cut");
thumbButtonCut.Click += new EventHandler<ThumbnailButtonClickedEventArgs>(thumbButtonCut_Click);

thumbButtonCopy = new ThumbnailToolbarButton(Properties.Resources.copy, "Copy");
thumbButtonCopy.Click += new EventHandler<ThumbnailButtonClickedEventArgs>(thumbButtonCopy_Click);

thumbButtonPaste = new ThumbnailToolbarButton(Properties.Resources.paste, "Paste");
thumbButtonPaste.Click += new EventHandler<ThumbnailButtonClickedEventArgs>(thumbButtonPaste_Click);

thumbButtonSelectAll = new ThumbnailToolbarButton(Properties.Resources.selectAll, "SelectAll");
thumbButtonSelectAll.Click += new EventHandler<ThumbnailButtonClickedEventArgs>(thumbButtonSelectAll_Click);

this.FormClosing += new FormClosingEventHandler(Form1_FormClosing);
}

bool cancelFormClosing = false;

void Form1_FormClosing(object sender, FormClosingEventArgs e)
{

if (tabControl1 != null && tabControl1.TabPages.Count > 0)
{
if (tabControl1.TabPages.Count <= 1)
{

cancelFormClosing = false;
}
else
{

TaskDialog tdClose = new TaskDialog();
tdClose.Caption = "Tabbed Thumbnail demo (Winforms)";
tdClose.InstructionText = "退出所有浏览器?";
tdClose.Cancelable = true;
tdClose.OwnerWindowHandle = this.Handle;

TaskDialogButton closeAllTabsButton = new TaskDialogButton("closeAllTabsButton", "Close all tabs");
closeAllTabsButton.Default = true;
closeAllTabsButton.Click += new EventHandler(closeAllTabsButton_Click);
tdClose.Controls.Add(closeAllTabsButton);

TaskDialogButton closeCurrentTabButton = new TaskDialogButton("closeCurrentTabButton", "Close current tab");
closeCurrentTabButton.Click += new EventHandler(closeCurrentTabButton_Click);
tdClose.Controls.Add(closeCurrentTabButton);

tdClose.Show();
}
}

e.Cancel = cancelFormClosing;
}

void closeCurrentTabButton_Click(object sender, EventArgs e)
{
button2_Click(this, EventArgs.Empty);
cancelFormClosing = true;
}

void closeAllTabsButton_Click(object sender, EventArgs e)
{
cancelFormClosing = false;
}

void Form1_SizeChanged(object sender, EventArgs e)
{

if (WindowState != FormWindowState.Minimized)
{

if (tabControl1.TabPages.Count > 0 && tabControl1.SelectedTab != null)
TaskbarManager.Instance.TabbedThumbnail.GetThumbnailPreview(tabControl1.SelectedTab).InvalidatePreview();

}
}

private TabPage FindTab(IntPtr handle)
{
if (handle == IntPtr.Zero)
return null;

foreach (TabPage page in tabControl1.TabPages)
{
if (page.Handle == handle)
return page;
}

return null;
}

void thumbButtonBack_Click(object sender, ThumbnailButtonClickedEventArgs e)
{
TabPage page = FindTab(e.WindowHandle);

if(page != null && page.Controls[0] is WebBrowser)
((WebBrowser)page.Controls[0]).GoBack();
}

void thumbButtonForward_Click(object sender, ThumbnailButtonClickedEventArgs e)
{
TabPage page = FindTab(e.WindowHandle);

if (page != null && page.Controls[0] is WebBrowser)
((WebBrowser)page.Controls[0]).GoForward();
}

void thumbButtonRefresh_Click(object sender, ThumbnailButtonClickedEventArgs e)
{
TabPage page = FindTab(e.WindowHandle);

if (page != null && page.Controls[0] is WebBrowser)
((WebBrowser)page.Controls[0]).Refresh();
}

void thumbButtonCut_Click(object sender, ThumbnailButtonClickedEventArgs e)
{
TabPage page = FindTab(e.WindowHandle);

if (page != null && page.Controls[0] is RichTextBox)
{
((RichTextBox)page.Controls[0]).Cut();

if (tabControl1.Size != Size.Empty && tabControl1.TabPages.Count > 0 && tabControl1.SelectedTab != null)
UpdatePreviewBitmap(tabControl1.SelectedTab);
}
}

void thumbButtonCopy_Click(object sender, ThumbnailButtonClickedEventArgs e)
{
TabPage page = FindTab(e.WindowHandle);

if (page != null && page.Controls[0] is RichTextBox)
{
((RichTextBox)page.Controls[0]).Copy();

if (tabControl1.Size != Size.Empty && tabControl1.TabPages.Count > 0 && tabControl1.SelectedTab != null)
UpdatePreviewBitmap(tabControl1.SelectedTab);
}
}

void thumbButtonPaste_Click(object sender, ThumbnailButtonClickedEventArgs e)
{
TabPage page = FindTab(e.WindowHandle);

if (page != null && page.Controls[0] is RichTextBox)
{
((RichTextBox)page.Controls[0]).Paste();

if (tabControl1.Size != Size.Empty && tabControl1.TabPages.Count > 0 && tabControl1.SelectedTab != null)
UpdatePreviewBitmap(tabControl1.SelectedTab);
}
}

void thumbButtonSelectAll_Click(object sender, ThumbnailButtonClickedEventArgs e)
{
TabPage page = FindTab(e.WindowHandle);

if (page != null && page.Controls[0] is RichTextBox)
((RichTextBox)page.Controls[0]).SelectAll();
}

void tabControl1_Selecting(object sender, TabControlCancelEventArgs e)
{

if (tabControl1.TabPages.Count > 0 && tabControl1.SelectedTab != null)
UpdatePreviewBitmap(previousSelectedPage);

previousSelectedPage = tabControl1.SelectedTab;
}

private void UpdatePreviewBitmap(TabPage tabPage)
{
if (tabPage != null)
{
TabbedThumbnail preview = TaskbarManager.Instance.TabbedThumbnail.GetThumbnailPreview(tabPage);

if (preview != null)
{
Bitmap bitmap = TabbedThumbnailScreenCapture.GrabWindowBitmap(tabPage.Handle, tabPage.Size);
preview.SetImage(bitmap);

if (bitmap != null)
{
bitmap.Dispose();
bitmap = null;
}
}
}
}

void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{

if (tabControl1.TabPages.Count > 0 && tabControl1.SelectedTab != null)
{
TaskbarManager.Instance.TabbedThumbnail.SetActiveTab(tabControl1.SelectedTab);

if (tabControl1.SelectedTab.Controls[0] is RichTextBox)
button4.Enabled = true;
else
button4.Enabled = false;
}
}

void Window_Scroll(object sender, HtmlElementEventArgs e)
{

if (tabControl1.TabPages.Count > 0 && tabControl1.SelectedTab != null)
UpdatePreviewBitmap(tabControl1.SelectedTab);
}

void wb_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{

comboBox1.Text = ((WebBrowser)sender).Document.Url.ToString();

if (!scrollEventAdded)
{
((WebBrowser)sender).Document.Window.Scroll += new HtmlElementEventHandler(Window_Scroll);
scrollEventAdded = true;
}
}

/// <param name="args"></param>
private void button1_Click(object sender, System.EventArgs args)
{
TabPage newTab = new TabPage("Tab " + tabControl1.TabPages.Count + 1);
tabControl1.TabPages.Add(newTab);
WebBrowser wb = new WebBrowser();
wb.DocumentTitleChanged += new EventHandler(wb_DocumentTitleChanged);
wb.Navigated += new WebBrowserNavigatedEventHandler(wb_Navigated);
wb.ProgressChanged += new WebBrowserProgressChangedEventHandler(wb_ProgressChanged);
wb.Dock = DockStyle.Fill;
wb.Navigate(comboBox1.Text);
newTab.Controls.Add(wb);

TaskbarManager.Instance.ThumbnailToolbars.AddButtons(newTab.Handle, thumbButtonBack, thumbButtonForward, thumbButtonRefresh);

TabbedThumbnail preview = new TabbedThumbnail(this.Handle, newTab.Handle);

preview.TabbedThumbnailActivated += new EventHandler<TabbedThumbnailEventArgs>(preview_TabbedThumbnailActivated);
preview.TabbedThumbnailClosed += new EventHandler<TabbedThumbnailEventArgs>(preview_TabbedThumbnailClosed);
preview.TabbedThumbnailMaximized += new EventHandler<TabbedThumbnailEventArgs>(preview_TabbedThumbnailMaximized);
preview.TabbedThumbnailMinimized += new EventHandler<TabbedThumbnailEventArgs>(preview_TabbedThumbnailMinimized);

TaskbarManager.Instance.TabbedThumbnail.AddThumbnailPreview(preview);

tabControl1.SelectedTab = newTab;
TaskbarManager.Instance.TabbedThumbnail.SetActiveTab(tabControl1.SelectedTab);

scrollEventAdded = false;

//
button2.Enabled = true;
}

void wb_ProgressChanged(object sender, WebBrowserProgressChangedEventArgs e)
{

if (e.CurrentProgress >= 0)
{
toolStripProgressBar1.Maximum = (int)e.MaximumProgress;
toolStripProgressBar1.Value = (int)e.CurrentProgress;
}

if ((int)e.CurrentProgress >= (int)e.MaximumProgress)
{
if (tabControl1.Size != Size.Empty && tabControl1.TabPages.Count > 0 && tabControl1.SelectedTab != null)
UpdatePreviewBitmap(tabControl1.SelectedTab);
}
}

void wb_DocumentTitleChanged(object sender, System.EventArgs e)
{

TabPage page = ((WebBrowser)sender).Parent as TabPage;

if (page != null)
{
page.Text = ((WebBrowser)sender).DocumentTitle;

TabbedThumbnail preview = TaskbarManager.Instance.TabbedThumbnail.GetThumbnailPreview(page);

if (preview != null)
preview.Title = page.Text;

}
}

private void button2_Click(object sender, EventArgs e)
{
if (tabControl1.SelectedTab != null)
{
TaskbarManager.Instance.TabbedThumbnail.RemoveThumbnailPreview(tabControl1.SelectedTab);
tabControl1.TabPages.Remove(tabControl1.SelectedTab);
}

if (tabControl1.TabPages.Count == 0)
button2.Enabled = false;
}

private void button3_Click(object sender, EventArgs e)
{

CommonOpenFileDialog cfd = new CommonOpenFileDialog();

CommonFileDialogStandardFilters.TextFiles.ShowExtensions = true;
CommonFileDialogFilter rtfFilter = new CommonFileDialogFilter("RTF Files", ".rtf");
rtfFilter.ShowExtensions = true;

cfd.Filters.Add(CommonFileDialogStandardFilters.TextFiles);
cfd.Filters.Add(rtfFilter);

if (cfd.ShowDialog() == CommonFileDialogResult.OK)
{
TabPage newTab = new TabPage("Tab " + tabControl1.TabPages.Count + 1);
tabControl1.TabPages.Add(newTab);
RichTextBox rtbText = new RichTextBox();
rtbText.KeyDown += new KeyEventHandler(rtbText_KeyDown);
rtbText.MouseMove += new MouseEventHandler(rtbText_MouseMove);
rtbText.KeyUp += new KeyEventHandler(rtbText_KeyUp);
rtbText.Dock = DockStyle.Fill;

if (Path.GetExtension(cfd.FileName).ToLower() == ".txt")
rtbText.LoadFile(cfd.FileName, RichTextBoxStreamType.PlainText);
else if (Path.GetExtension(cfd.FileName).ToLower() == ".rtf")
rtbText.LoadFile(cfd.FileName, RichTextBoxStreamType.RichText);

newTab.Text = Path.GetFileName(cfd.FileName);
newTab.Controls.Add(rtbText);

TabbedThumbnail preview = new TabbedThumbnail(this.Handle, newTab.Handle);

preview.TabbedThumbnailActivated += new EventHandler<TabbedThumbnailEventArgs>(preview_TabbedThumbnailActivated);
preview.TabbedThumbnailClosed += new EventHandler<TabbedThumbnailEventArgs>(preview_TabbedThumbnailClosed);
preview.TabbedThumbnailMaximized += new EventHandler<TabbedThumbnailEventArgs>(preview_TabbedThumbnailMaximized);
preview.TabbedThumbnailMinimized += new EventHandler<TabbedThumbnailEventArgs>(preview_TabbedThumbnailMinimized);

preview.ClippingRectangle = GetClippingRectangle(rtbText);
TaskbarManager.Instance.TabbedThumbnail.AddThumbnailPreview(preview);

TaskbarManager.Instance.ThumbnailToolbars.AddButtons(newTab.Handle, thumbButtonCut, thumbButtonCopy, thumbButtonPaste, thumbButtonSelectAll);

tabControl1.SelectedTab = newTab;
TaskbarManager.Instance.TabbedThumbnail.SetActiveTab(tabControl1.SelectedTab);

button2.Enabled = true;
button4.Enabled = true;
}
}

void preview_TabbedThumbnailMinimized(object sender, TabbedThumbnailEventArgs e)
{

this.WindowState = FormWindowState.Minimized;
}

void preview_TabbedThumbnailMaximized(object sender, TabbedThumbnailEventArgs e)
{

this.WindowState = FormWindowState.Maximized;

if (tabControl1.Size != Size.Empty && tabControl1.TabPages.Count > 0 && tabControl1.SelectedTab != null)
UpdatePreviewBitmap(tabControl1.SelectedTab);
}

void preview_TabbedThumbnailClosed(object sender, TabbedThumbnailEventArgs e)
{
TabPage pageClosed = null;

foreach (TabPage page in tabControl1.TabPages)
{
if (page.Handle == e.WindowHandle)
{
pageClosed = page;
break;
}
}

if (pageClosed != null)
{

WebBrowser wb = pageClosed.Controls[0] as WebBrowser;

if (wb != null)
{
wb.DocumentTitleChanged -= new EventHandler(wb_DocumentTitleChanged);

wb.Navigated -= new WebBrowserNavigatedEventHandler(wb_Navigated);
wb.ProgressChanged -= new WebBrowserProgressChangedEventHandler(wb_ProgressChanged);
wb.Document.Window.Scroll -= new HtmlElementEventHandler(Window_Scroll);

wb.Dispose();
}
else
{

RichTextBox rtbText = pageClosed.Controls[0] as RichTextBox;

if (rtbText != null)
{
rtbText.KeyDown -= new KeyEventHandler(rtbText_KeyDown);
rtbText.MouseMove -= new MouseEventHandler(rtbText_MouseMove);
rtbText.KeyUp -= new KeyEventHandler(rtbText_KeyUp);
}

rtbText.Dispose();
}

if (pageClosed != null)
tabControl1.TabPages.Remove(pageClosed);

pageClosed.Dispose();

if (tabControl1.TabPages.Count > 0)
button2.Enabled = true;
else
button2.Enabled = false;
}

e.TabbedThumbnail.TabbedThumbnailActivated -= new EventHandler<TabbedThumbnailEventArgs>(preview_TabbedThumbnailActivated);
e.TabbedThumbnail.TabbedThumbnailClosed -= new EventHandler<TabbedThumbnailEventArgs>(preview_TabbedThumbnailClosed);
e.TabbedThumbnail.TabbedThumbnailMaximized -= new EventHandler<TabbedThumbnailEventArgs>(preview_TabbedThumbnailMaximized);
e.TabbedThumbnail.TabbedThumbnailMinimized -= new EventHandler<TabbedThumbnailEventArgs>(preview_TabbedThumbnailMinimized);
}

void preview_TabbedThumbnailActivated(object sender, TabbedThumbnailEventArgs e)
{

foreach (TabPage page in tabControl1.TabPages)
{
if (page.Handle == e.WindowHandle)
{

tabControl1.SelectedTab = page;
TaskbarManager.Instance.TabbedThumbnail.SetActiveTab(page);
}
}

if (this.WindowState == FormWindowState.Minimized)
this.WindowState = FormWindowState.Normal;
}

void rtbText_KeyUp(object sender, KeyEventArgs e)
{
TabbedThumbnail preview = TaskbarManager.Instance.TabbedThumbnail.GetThumbnailPreview((Control)sender);
if (preview != null)
preview.ClippingRectangle = GetClippingRectangle((RichTextBox)sender);
}

void rtbText_KeyDown(object sender, KeyEventArgs e)
{
TabbedThumbnail preview = TaskbarManager.Instance.TabbedThumbnail.GetThumbnailPreview((Control)sender);
if (preview != null)
preview.ClippingRectangle = GetClippingRectangle((RichTextBox)sender);
}

void rtbText_MouseMove(object sender, MouseEventArgs e)
{
TabbedThumbnail preview = TaskbarManager.Instance.TabbedThumbnail.GetThumbnailPreview((Control)sender);
if (preview != null)
preview.ClippingRectangle = GetClippingRectangle((RichTextBox)sender);
}

private string clipText = "Cli&p thumbnail";
private string showFullText = "F&ull thumbnail";

private void button4_Click(object sender, EventArgs e)
{

if (tabControl1.SelectedTab == null)
return;

TabbedThumbnail preview = TaskbarManager.Instance.TabbedThumbnail.GetThumbnailPreview(tabControl1.SelectedTab);

if (tabControl1.SelectedTab != null && preview != null)
{
RichTextBox rtbText = tabControl1.SelectedTab.Controls[0] as RichTextBox;

if (button4.Text == clipText && rtbText != null)
{
preview.ClippingRectangle = GetClippingRectangle(rtbText);
}
else if (button4.Text == showFullText)
{
preview.ClippingRectangle = null;
}
}

if (button4.Text == clipText)
button4.Text = showFullText;
else
button4.Text = clipText;
}

private Rectangle GetClippingRectangle(RichTextBox rtbText)
{
int index = rtbText.GetFirstCharIndexOfCurrentLine();
Point point = rtbText.GetPositionFromCharIndex(index);
return new Rectangle(point, new Size(200, 119));
}

internal void Navigate(string path)
{
string[] lines = File.ReadAllLines(path);
string urlString = "";

foreach (string line in lines)
{
if (line.StartsWith("URL="))
{
urlString = line.Replace("URL=", "");

break;
}
}

if (!string.IsNullOrEmpty(path) && tabControl1.TabPages.Count > 0 && tabControl1.SelectedTab != null)
{
if (tabControl1.SelectedTab.Controls[0] is WebBrowser)
{
((WebBrowser)tabControl1.SelectedTab.Controls[0]).Navigate(urlString);
}
}
else
{

comboBox1.Text = urlString;
button1_Click(this, EventArgs.Empty);
}
}

private void Form1_Load(object sender, EventArgs e)
{

}
}
}




插入相关代码,代码分析如下

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.WindowsAPICodePack.Shell;
using Microsoft.WindowsAPICodePack.Taskbar;
using System.IO;
using Microsoft.WindowsAPICodePack.Controls;

namespace Microsoft.WindowsAPICodePack.Samples.TabbedThumbnailDemo
{
public partial class FavoritesWindow : Form
{
private Form1 parentForm = null;

public FavoritesWindow(Form1 parent)
{
parentForm = parent;

InitializeComponent();

explorerBrowser1.NavigationOptions.PaneVisibility.AdvancedQuery = PaneVisibilityState.Hide;
explorerBrowser1.NavigationOptions.PaneVisibility.Commands= PaneVisibilityState.Hide;
explorerBrowser1.NavigationOptions.PaneVisibility.CommandsOrganize= PaneVisibilityState.Hide;
explorerBrowser1.NavigationOptions.PaneVisibility.CommandsView= PaneVisibilityState.Hide;
explorerBrowser1.NavigationOptions.PaneVisibility.Details = PaneVisibilityState.Hide;
explorerBrowser1.NavigationOptions.PaneVisibility.Navigation= PaneVisibilityState.Hide;
explorerBrowser1.NavigationOptions.PaneVisibility.Preview = PaneVisibilityState.Hide;
explorerBrowser1.NavigationOptions.PaneVisibility.Query= PaneVisibilityState.Hide;

explorerBrowser1.ContentOptions.NoSubfolders = true;
explorerBrowser1.ContentOptions.NoColumnHeader = true;
explorerBrowser1.ContentOptions.NoHeaderInAllViews = true;

explorerBrowser1.SelectionChanged += new ExplorerBrowserSelectionChangedEventHandler(explorerBrowser1_SelectionChanged);
this.Load += new EventHandler(FavoritesWindow_Load);
}

void explorerBrowser1_SelectionChanged(object sender, EventArgs e)
{
if (explorerBrowser1.SelectedItems.Count > 0 && explorerBrowser1.SelectedItems[0] is ShellFile)
{
string path = ((ShellFile)explorerBrowser1.SelectedItems[0]).Path;

if (Path.GetExtension(path).ToLower() == ".url")
{
if (parentForm != null)
parentForm.Navigate(path);
}
}
}

void FavoritesWindow_Load(object sender, EventArgs e)
{
explorerBrowser1.ContentOptions.ViewMode = ExplorerBrowserViewMode.List;

explorerBrowser1.Navigate((ShellObject)KnownFolders.Favorites);
}

private void FavoritesWindow_Load_1(object sender, EventArgs e)
{

}

private void explorerBrowser1_Load(object sender, EventArgs e)
{

}
}
}


效果如下





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: