Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамическая компоновка интерфейса, в XAML 
:(
    Опции темы
San4o_Pan4o
Дата 22.11.2009, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 16.12.2007

Репутация: нет
Всего: нет



Всем привет! Такой вопрос возник в ходе разработки. Допустим, есть Grid с двумя строками:
Код

<Grid>
  <Grid.RowDefinitions>
            <RowDefinition Height="*" />
            <RowDefinition Height="55" />
  </Grid.RowDefinitions>
</Grid>


Далее, у меня есть в code-behind файле, скажем переменная contentType типа некоторого перечисления (например, Media, Doc, Simple).
И я хочу в зависимости от значения этой переменной в первую строку этого грида подсовывать подходящий Layout. К примеру, для Media это MediaElement, для Simple - StackPanel с полями и т.п. Думаю нужно смотреть в сторону DataTriggers, но мб кто поможет примером? smile 
PM MAIL   Вверх
Anyone
Дата 27.11.2009, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 218
Регистрация: 1.6.2008

Репутация: нет
Всего: нет



Да, можно использовать ContentControl и Datatriggers, типу так:
Код

     <ContentControl>
      <ContentControl.Resources>
       <MediaElement x:Key="me1" Width="250">
        <MediaElement.Triggers>
         <EventTrigger RoutedEvent="FrameworkElement.Loaded">
          <BeginStoryboard>
           <Storyboard>
            <MediaTimeline Source="Путь к видео" Duration="0:0:0.1"/>
           </Storyboard>
          </BeginStoryboard>
         </EventTrigger>
        </MediaElement.Triggers>
       </MediaElement>
       <MediaElement x:Key="me2" Width="250">
        <MediaElement.Triggers>
         <EventTrigger RoutedEvent="FrameworkElement.Loaded">
          <BeginStoryboard>
           <Storyboard>
            <MediaTimeline Source="Путь к видео" RepeatBehavior="Forever" BeginTime="0:0:0.1"/>
           </Storyboard>
          </BeginStoryboard>
         </EventTrigger>
        </MediaElement.Triggers>
       </MediaElement>
      </ContentControl.Resources>
      <ContentControl.Style>
       <Style TargetType="ContentControl">
        <Setter Property="Content" Value="{DynamicResource me1}"/>
        <Style.Triggers>
         <DataTrigger Binding="{Binding ElementName=tb, Path=IsChecked}" Value="True">
          <Setter Property="Content" Value="{DynamicResource me2}"/>
         </DataTrigger>
        </Style.Triggers>
       </Style>
      </ContentControl.Style>
     </ContentControl>

Здесь в зависимости от ситуации используется либо первый, либо второй медиаэлемент.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0387 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.