不知道为什么,但将我的pivotviewer应用程序从Silverlight 4移动到Silverlight 5改变了一些事情。
当我以前切换到graphview时,我的类别用于组合在一起,如图所示(在SL4中)
现在发生了变化,每个类别在graphview中都有自己的列。
我想回到原来的行为,但我不知道如何禁用它。此外,scrollviewer位于pivotviewer的底部。
尝试像这样使用ScrollViewer。
<pivot:PivotViewer x:Name="PivotMainPage" ItemsSource="{Binding}" ScrollViewer.VerticalScrollBarVisibility="Hidden" />
似乎它不想工作。有什么建议吗?
我怀疑它与容器的宽度和高度有关。似乎最小MinHeight = 250 e MinWidth = 450会影响pivotviewer超出列的边框。
编辑。我删除了所有无用的东西,发现Pivotviewer任意决定何时使用滚动查看器。我可以找到一种方法来禁用它。现在,行为是旧SL4(某些项目已分组)和新SL5之间的混合(即使项目已分组,滚动条也可用)。
以下是SL5中第一张图片的示例!
这是新代码:
<UserControl x:Class="PVClean.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:pivot="clr-namespace:System.Windows.Controls.Pivot;assembly=System.Windows.Controls.Pivot"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">
<Grid x:Name="LayoutRoot" Background="White">
<pivot:PivotViewer x:Name="PivotMainPage" ItemsSource="{Binding}" ScrollViewer.VerticalScrollBarVisibility="Hidden" />
</Grid>
</UserControl>
这是背后的代码:
public MainPage()
{
InitializeComponent();
PivotMainPage.Loaded += pViewer_Loaded;
}
void pViewer_Loaded(object sender, RoutedEventArgs e)
{
_cxml = new CxmlCollectionSource(new Uri("http://pivot.blob.core.windows.net/msdn-magazine/msdnmagazine.cxml", UriKind.Absolute));
_cxml.StateChanged += _cxml_StateChanged;
}
void _cxml_StateChanged(object sender,
CxmlCollectionStateChangedEventArgs e)
{
if (e.NewState == CxmlCollectionState.Loaded)
{
PivotMainPage.PivotProperties =
_cxml.ItemProperties.ToList();
PivotMainPage.ItemTemplates =
_cxml.ItemTemplates;
PivotMainPage.ItemsSource =
_cxml.Items;
}
}
答案 0 :(得分:1)
SL5 PivotViewer中有一个限制,它确定(可能基于控件的宽度)最多有多少“桶”。如果您有超过此最大值,它将开始对它们进行分组。
然而,为了回答你的问题,我同意 - 他们编码的方式并不完美 - 即使项目被分组,它仍会显示滚动条。除非发布新版本,否则这是我们必须接受的另一件事。 SL4错过的一个功能是你可以指定直方图的排序(而不是A-Z)。