LibraryContainer в ScatterViewItem: изменение размера и фоновый прямоугольник - PullRequest
1 голос
/ 15 июня 2010

Простой: хотите добавить LibraryContainer в Surface ScatterView. Знайте, я должен добавить контейнер внутри ScatterViewItem, чтобы получить функции поворота / перемещения ... но SVI добавляет прямоугольник вокруг элемента управления, и он не имеет правильного размера Думаю, я упускаю что-то простое, но не могу понять ... Мой текущий XAML выглядит следующим образом:

Background = "{StaticResource WindowBackground}" AllowDrop = "True"> , , ,

Любые мысли приветствуются ... Я смотрел на примеры с практическими рекомендациями, но показанные элементы управления библиотеки являются статическим элементом. (т.е. они не подвижны) ...

UPDATE:
Я понимаю, что вы говорите. Это имеет смысл, но не ведет себя так, как хотелось бы. Ниже приведен целый образец 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 ]

1 голос
/ 18 августа 2010

Я прошу вас написать ControlTemplate для ScatterviewItem и передать в него стек библиотеки. Или вы просто устанавливаете Background для ScatterviewItem на Transparent, что может иметь тот же эффект. Потому что Transparent удаляет HitTestvisibility на непокрытом пространстве.

0 голосов
/ 16 июня 2010

Трудно сказать, не видя остальной части исходного кода, но обычно вам не нужно вручную оборачивать свой контент в SVI. Просто добавьте свой элемент управления непосредственно в SV, и SVI будет автоматически сгенерирован как контейнер. Перемещение / изменение размера будет работать до тех пор, пока внутренние элементы управления не будут захватывать контакты первыми.

...