简单的一个:想要将LibraryContainer添加到Surface ScatterView。知道我必须在ScatterViewItem中添加容器以获得旋转/移动功能..但是SVI在控件周围添加了一个矩形框,并且它的大小不正确。想想我错过了一些简单但无法想象的东西......我目前的XAML如下:
Background =“{StaticResource WindowBackground}” AllowDrop =“True”> 。 。 。
感谢任何想法...我一直在查看操作方法示例,但显示的库控件是静态项目。 (即它们不可移动)......
更新
我明白你在说什么。这是有道理的,但不像预期的那样表现。以下是LibraryContainer
的完整示例。它是空的,但显示了我得到的奇怪行为。即:没有调整大小,背景矩形我无法摆脱自己..
任何建议都表示赞赏。
< s:SurfaceWindow x:Class="SurfaceApplication1.SurfaceWindow1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:s="http://schemas.microsoft.com/surface/2008"
Title="SurfaceApplication1"
>
< s:SurfaceWindow.Resources>
< ImageBrush x:Key="WindowBackground" Stretch="None" Opacity="0.6" ImageSource="pack://application:,,,/Resources/WindowBackground.jpg"/>
< XmlDataProvider x:Key="MyData" XPath="CoverList" x:Name="xdpList">
</XmlDataProvider>
< !-- Describe teh data grouping and bind to the data above -->
< CollectionViewSource
x:Key="MySourceOfData"
Source="{Binding Source={StaticResource MyData}, XPath=Item}" >
< CollectionViewSource.GroupDescriptions>
< PropertyGroupDescription PropertyName="@Size" />
< /CollectionViewSource.GroupDescriptions>
< /CollectionViewSource>
< DataTemplate x:Key="MyDataTemp">
< Border BorderThickness="1" BorderBrush="White" Margin="3">
< Image Source="{Binding XPath=@Image}"></Image>
< /Border>
</DataTemplate>
</s:SurfaceWindow.Resources>
<Grid Background="{StaticResource WindowBackground}" >
<s:ScatterView>
<s:LibraryContainer Name="MainLibraryContainer"
Width="400" Height="200"
ViewingMode="Bar"
ItemsSource="{Binding Source={StaticResource MySourceOfData}}" CanSwitchViewingMode="False" IsActive="True">
<!-- Provide the view if a stack view select (not in use) -->
<s:LibraryContainer.StackView>
<s:StackView
NormalizedTransitionSize="1,1"
ItemTemplate="{StaticResource MyDataTemp}">
</s:StackView>
</s:LibraryContainer.StackView>
<!-- bar view of the data -->
<s:LibraryContainer.BarView>
<s:BarView
Rows="1"
ItemTemplate="{StaticResource MyDataTemp}">
</s:BarView>
</s:LibraryContainer.BarView>
</s:LibraryContainer>
</s:ScatterView>
</Grid>
</s:SurfaceWindow>
答案 0 :(得分:1)
我认为你必须为ScatterviewItem编写一个ControlTemplate并在其中传递Library Stack。或者您只需将ScatterviewItem的背景设置为Transparent,它可能具有相同的效果。因为Transparent会删除非覆盖空间上的HitTestvisibility。
答案 1 :(得分:0)
如果没有看到其他源代码,很难说,但通常您不需要手动将内容包装在SVI中。只需将控件直接添加到SV,SVI将自动生成为容器。只要内部控件没有首先捕获联系人,移动/调整大小就会起作用。