Silverlight 版 C1OutlookBar 初体验

ComponentOne 2011 v3版本中新增了Silverlight版本和WPF版本的c1OutlookBar控件。它对应的是WinForms版本的C1NavBar。因为“OutlookBar”更贴切也更准确,所以我们在XAML平台下使用了这个名字。有Outlook2007和2010样式。

clip_image002

OutlookBar类似一个TabControl,用户可以选择Content panel中的任何一个Item。你可以按照优先级为它们建立分类。OutlookBar可以通过拖拽操作,自由的收起或者展开各个项目。这样用户就可以方便的定制那些项目显示出来,哪些最小化到底部菜单里。如图所示:

clip_image003

整个控件可以最小化到最左边或者最右边。当你不需要导航栏的时候,可以轻松的隐藏它,而将有限的屏幕空间用于显示其他UI。

C1OutlookBar支持14种不同的外观样式。其实基本上所有的ComponentOne Studio的控件都可以通过设置几个Brush属性来适应各种样式风格。这都要感谢ClearStyle技术。

clip_image005

 

控件结构

一个最基本的例子来说,我们可以通过几行简单的XAML代码创建一个C1OutlookBar。每一个Item包含4个主要属性:Header,Content,LargeIcon以及SmallIcon。如下图所示:

clip_image007

此外,还需要指定哪些内容在控件收起的时候可以显示,这可以通过定义icon templates实现。下面的XAML代码是上图C1OutlookBar的全部代码

<c1:C1OutlookBar Name="c1OutlookBar1" ExpandedWidth="170" IsExpanded="True"> 
    <!-- content shown when the bar is collapsed --> 
    c1:C1OutlookBar.CollapsedContent> 
        c1:C1LayoutTransformer> 
            c1:C1LayoutTransformer.LayoutTransform> 
                RotateTransform Angle="270" /> 
            </TextBlock FontSize="13" TextAlignment="Center" VerticalAlignment 
                        Text="Navigation Pane" /> 
         define icon templates c1:C1OutlookBar.LargeIconTemplateDataTemplateImage Source="{Binding}" Width="24" Height="24" c1:C1OutlookBar.SmallIconTemplateGrid Height="24"="16"="16" Grid items c1:C1OutlookItem Header="Home" SmallIcon="Images/16/Home.png" LargeIcon="Images/24/Home.png"Text="My Home" /> 
    c1:C1OutlookItem="Files"="Images/16/Cab1.png"="Images/24/Cab1.png"="My Files" ="Sales"="Images/16/ChartPie.png"="Images/24/ChartPie.png"="My Sales" ="History"="Images/16/History.png"="Images/24/History.png"="My History" ="Settings"="Images/16/User.png"="Images/24/User.png"="My Settings" > 
c1:C1OutlookBar>



 

页面排布

当C1OutlookBar收起的时候,中间的content区域会自动展开,充满空余的界面。尤其是当把C1OutlookBar放在Grid中时,ColumnDeFinition的宽度设置为Auto时,该功能支持的很好。同时初始化ExpandedWidth也很重要,当然了,这个属性可以在runtime修改代码如下:

x:Name="LayoutRoot"Grid.ColumnDeFinitionsColumnDeFinition Width="Auto" ColumnDeFinition ExpandedWidth="200"="True" /> >



 

clip_image001

 

工作在MVVM模式下

C1OutlookBar是一个ItemsControl。我们可以将ItemsSource设置给一个viewmodel定义的列表。这种用例下,我们还可以设置ItemTemplate,ContentTemplate。LargeIconTemplate以及SmallIconTemplate。

 

关于更多的功能可以下载: Studio for SilverlightStudio for WPF

相关文章

如何在Silverlight4(XAML)中绑定IsEnabled属性?我试过简单的...
我正在编写我的第一个vb.net应用程序(但我也会在这里标记c#,...
ProcessFile()是在UIThread上运行还是在单独的线程上运行.如...
我从同行那里听说,对sharepoint的了解对职业生涯有益.我们不...
我正在尝试保存一个类我的类对象的集合.我收到一个错误说明:...
我需要根据Silverlight中的某些配置值设置给定控件的Style.我...