gpt4 book ai didi

silverlight - Telerik Silverlight RadPanelBar 分层数据模板

转载 作者:行者123 更新时间:2023-12-04 03:11:27 28 4
gpt4 key购买 nike

我需要使用 telerik PanelBar 显示以下布局。

RadPanelBar template

通过下面的代码,我能够在每个面板中实现除 92% 之外的所有内容。

XAML:

<UserControl.Resources>
<DataTemplate x:Key="PanelBarItemTemplate">
<Grid x:Name="grdCategory" ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition Height="30"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="60*"></ColumnDefinition>
<ColumnDefinition Width="40*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid x:Name="grdSubCategory" Grid.Column="0" Style="{StaticResource CategoryLeftStyle}" >
<Grid.RowDefinitions>
<RowDefinition Height="20"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50*"></ColumnDefinition>
<ColumnDefinition Width="25*"></ColumnDefinition>
<ColumnDefinition Width="25*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding CategoryTitle}" Grid.Row="0" Grid.Column="0"/>
<HyperlinkButton Grid.Row="0" Grid.Column="1" Style="{StaticResource DetailLinkStyle}" Content="Details" Click="Home_Click"></HyperlinkButton>
<TextBlock Text="{Binding Score}" Grid.Row="0" Grid.Column="2"/>
</Grid>
<TextBlock Text="92%" Grid.Column="1" Grid.Row="0" Grid.RowSpan="2" FontSize="32" FontWeight="Bold"/>
</Grid>
</DataTemplate>

<telerik:HierarchicalDataTemplate x:Key="PanelBarHeaderTemplate"
ItemsSource="{Binding SubReports}"
ItemTemplate="{StaticResource PanelBarItemTemplate}">
<TextBlock Text="{Binding CategoryTitle}" />
</telerik:HierarchicalDataTemplate>

</UserControl.Resources>

<Grid x:Name="LayoutRoot">
<telerik:RadPanelBar x:Name="radPanelBar"
ItemTemplate="{StaticResource PanelBarHeaderTemplate}"
IsSingleExpandPath="False" >
</telerik:RadPanelBar>
</Grid>

我在 xaml.cs 文件中提供了 ItemsSource。

有人可以帮帮我吗?

最佳答案

所有这些代码对于单个项目都非常有效,但是要将 92% 放置在与这些项目相关的位置(稍微超出子项目),您还需要修改 RadPanelBar 的 ItemContainerStyle。最简单的方法是在 Blend 中提取它,然后在 PanelBarItemTopLevelTemplate 下查找名为 ItemsContainer 的部分。这是一个有点粗糙的版本,但我在我的项目上创建了一个名为 CalcInt 的公共(public)属性,它计算 SubReport 项目上的一个属性的总和,因此它可以从基本项目级别绑定(bind)。我修改后的代码如下所示:

                <Grid x:Name="ItemsContainer" Grid.Row="1" Visibility="Collapsed">
<telerik:LayoutTransformControl x:Name="transformationRoot">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<ItemsPresenter/>
<TextBlock Text="{Binding CalcInt}" FontSize="48" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</telerik:LayoutTransformControl>
</Grid>

我基本上将它从仅包含一个 ItemsPresenter 更改为一个带有一些布局的网格以显示我的超大 TextBlock。

如果您需要代码示例或有任何其他问题,请随时在 Twitter 上联系我 - @EvanHutnick。

干杯!

-埃文

关于silverlight - Telerik Silverlight RadPanelBar 分层数据模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6774914/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com