Scatter ViewItem中的库容器:调整大小和背景矩形

时间:2010-06-15 17:31:33

标签: c# .net-3.5 pixelsense

简单的一个:想要将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>

2 个答案:

答案 0 :(得分:1)

我认为你必须为ScatterviewItem编写一个ControlTemplate并在其中传递Library Stack。或者您只需将ScatterviewItem的背景设置为Transparent,它可能具有相同的效果。因为Transparent会删除非覆盖空间上的HitTestvisibility。

答案 1 :(得分:0)

如果没有看到其他源代码,很难说,但通常您不需要手动将内容包装在SVI中。只需将控件直接添加到SV,SVI将自动生成为容器。只要内部控件没有首先捕获联系人,移动/调整大小就会起作用。