Silverlight - убрать встроенный пользовательский элемент управления со страницы и сделать его полноэкранным - PullRequest
0 голосов
/ 22 октября 2010

У меня есть приложение Silverlight 4. MainPage, который является RootVisual приложения, имеет много элементов управления, один из которых - пользовательский элемент управления, называемый VideoPlayerView. Я хотел бы, чтобы пользователь нажимал на полноэкранный значок на этом элементе управления, чтобы этот элемент управления «выскакивал» со страницы и переходил в полноэкранный режим (т. Е. Все остальные элементы управления на этой странице должны быть скрыты, и только элемент управления VideoPlayerView будет показать во весь экран).

MainPage имеет следующие определения строк и столбцов:

<Grid.ColumnDefinitions>
        <ColumnDefinition Width="143"/>
        <ColumnDefinition Width="4"/>
        <ColumnDefinition Width="81"/>
        <ColumnDefinition Width="27"/>
        <ColumnDefinition Width="624"/>
        <ColumnDefinition Width="125"/>
        <ColumnDefinition Width="10"/>
        <ColumnDefinition Width="10"/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="15"/>
        <RowDefinition Height="40"/>
        <RowDefinition Height="10"/>
        <RowDefinition Height="21"/>
        <RowDefinition Height="10"/>
        <RowDefinition Height="199"/>
        <RowDefinition Height="220"/>
        <RowDefinition Height="21"/>
        <RowDefinition Height="160"/>
        <RowDefinition Height="26"/>
        <RowDefinition Height="45"/>
    </Grid.RowDefinitions>

Когда VideoPlayerView становится полноэкранным, я предполагаю, что ему нужно перейти в положение 0,0, и эти определения должны быть установлены на Auto в этой точке?

Я попытался удалить элемент управления VideoPlayerView из его текущего родителя, очистив дочернюю коллекцию MainPage.LayoutRoot и добавив видеоплеер в представление Layoutroot MainPage, но по какой-то причине VideoPlayerView отображается только в верхней четверти экрана.

Если кто-нибудь знает способ сделать это, пожалуйста, дайте мне знать!

Ответы [ 2 ]

0 голосов
/ 03 ноября 2010

Проблема была в нашем XAML - на видеоплеере было установлено свойство Clip, которое отключало видео в полноэкранном режиме. Удаление этого свойства в полноэкранном режиме решило проблему.

0 голосов
/ 23 октября 2010

Вероятно, причина, по которой видеопроигрыватель занимает только четверть экрана, заключается в том, что по умолчанию он добавляется в первый ряд и столбец сетки.Если вы хотите, чтобы он занимал несколько строк и столбцов, вы должны использовать Grid.ColumnSpan = 8 и Grid.RowSpan = 11, чтобы он занимал весь экран.

Кроме того, вам не обязательно удалятьвсе элементы управления из детской коллекции;Достаточно переключить их видимость на «Свернутый».

Вы можете обработать все эти изменения с помощью визуальных состояний, а затем сделать что-то вроде:

VisualStateManager.GoToState(this, "Normal", true);

и:

VisualStateManager.GoToState(this, "Fullscreen", true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...