В чем разница между загрузкой страниц или пользовательских элементов управления в элемент кадра XAML? - PullRequest
6 голосов
/ 18 мая 2009

Я перестраиваю структуру приложения показа слайдов WPF, которую я нашел в загружаемом коде для этого видео WPF .

Существует класс Presentation, у которого есть свойство INotifyPropertyChanged "CurrentSlide", которое изменяется при нажатии следующих / предыдущих кнопок и динамически отображается в элементе Frame.

Загруженный код загружает страницы в этот кадр, но я экспериментировал с загрузкой UserControls , которые, кажется, работают так же хорошо, на самом деле я не могу найти никакой разницы.

Кто-нибудь знает о каких-либо различиях при загрузке Pages или UserControls в элемент Frame XAML?

<Window x:Class="TestFull8229.Views.MainView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:c="clr-namespace:TestFull8229.Commands"
    xmlns:viewModels="clr-namespace:TestFull8229.ViewModels"
    Title="Main Window" Height="400" Width="800">

    <Window.Resources>
        <viewModels:Presentation x:Key="presentation"/>
    </Window.Resources>

    <DockPanel>
        <StackPanel>
            <Viewbox Stretch="Uniform">
                <Frame Width="800" Height="600" 
                       Source="{Binding Path=CurrentSlide, 
                       Source={StaticResource presentation}}"/>
            </Viewbox>
        </StackPanel>
    </DockPanel>
</Window>

1 Ответ

8 голосов
/ 18 мая 2009

Страница предназначена для размещения в контейнере навигации, поэтому у нее есть свойство title и доступ к службе навигации. Но, как вы заметили, UserControl может быть загружен во фрейме так же, как и любой допустимый WPF-контент. Страница также служит базовым классом для функции PageFunction, которая полезна для создания структурированной навигации, например мастеров.

Да, и еще одна вещь. Страница может быть загружена в Internet Explorer без хост-приложения. Другими словами, IE может выступать в качестве контейнера навигации для страницы, как Frame или NavigationWindow.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...