Silverlight 版 C1OutlookBar 初体验

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

发布于 2012/11/15 00:00

ComponentOne Enterprise

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


此外,还需要指定哪些内容在控件收起的时候可以显示,这可以通过定义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" />
            </c1:C1LayoutTransformer.LayoutTransform>
            <TextBlock FontSize="13" TextAlignment="Center" VerticalAlignment="Center"
                        Text="Navigation Pane" />
        </c1:C1LayoutTransformer>
    </c1:C1OutlookBar.CollapsedContent>

    <!-- define icon templates -->
    <c1:C1OutlookBar.LargeIconTemplate>
        <DataTemplate>
            <Image Source="{Binding}" Width="24" Height="24" />
        </DataTemplate>
    </c1:C1OutlookBar.LargeIconTemplate>
    <c1:C1OutlookBar.SmallIconTemplate>
        <DataTemplate>
            <Grid Height="24">
                <Image Source="{Binding}" Width="16" Height="16" />
            </Grid>
        </DataTemplate>
    </c1:C1OutlookBar.SmallIconTemplate>
<!-- items -->
    <c1:C1OutlookItem Header="Home" SmallIcon="Images/16/Home.png" LargeIcon="Images/24/Home.png">
        <TextBlock Text="My Home" />
    </c1:C1OutlookItem>

    <c1:C1OutlookItem Header="Files" SmallIcon="Images/16/Cab1.png" LargeIcon="Images/24/Cab1.png">
        <TextBlock Text="My Files" />
    </c1:C1OutlookItem>

    <c1:C1OutlookItem Header="Sales" SmallIcon="Images/16/ChartPie.png" LargeIcon="Images/24/ChartPie.png">
        <TextBlock Text="My Sales" />
    </c1:C1OutlookItem>

    <c1:C1OutlookItem Header="History" SmallIcon="Images/16/History.png" LargeIcon="Images/24/History.png">
        <TextBlock Text="My History" />
    </c1:C1OutlookItem>

    <c1:C1OutlookItem Header="Settings" SmallIcon="Images/16/User.png" LargeIcon="Images/24/User.png">
        <TextBlock Text="My Settings" />
    </c1:C1OutlookItem>

</c1:C1OutlookBar>
复制代码

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

 

 

<Grid x:Name="LayoutRoot">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
    <c1:C1OutlookBar ExpandedWidth="200" IsExpanded="True" />
</Grid>
复制代码



工作在MVVM模式下
C1OutlookBar 是一个ItemsControl。我们可以将ItemsSource设置给一个由ViewModel定义的列表。这种用例下,我们还可以设置 ItemTemplate,ContentTemplate。LargeIconTemplate以及SmallIconTemplate。

关于葡萄城

葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。

相关产品
推荐相关案例
关注微信
葡萄城社区二维码

关注“葡萄城社区”

加微信获取技术资讯

加微信获取技术资讯

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态