2015-09-24 2 views
0

Я пытаюсь установить ширину RichTextBlock на основе того, является ли устройство ПК или телефоном (приложение UWP), но у меня возникают проблемы с доступом к собственности ...Установить свойство ширины внутри page.resource

<Page.Resources> 
    <DataTemplate x:Key="sectionTemplate"> 
     <common:RichTextColumns> 
      <common:RichTextColumns.ColumnTemplate> 
       <DataTemplate> 
        <RichTextBlockOverflow Width="300" Margin="20,0,0,10"/> 
       </DataTemplate> 
      </common:RichTextColumns.ColumnTemplate> 
      <RichTextBlock Margin="10,0,10,10" TextAlignment="Justify" Width="300" TextWrapping="WrapWholeWords"> 
       <Paragraph> 
        <Run Text="{Binding}" /> 
       </Paragraph> 
      </RichTextBlock> 
     </common:RichTextColumns> 
    </DataTemplate> 
</Page.Resources> 

Любые предложения по простейшему способу сделать это?

+0

Вы можете использовать преобразователи. –

ответ

1

Используйте триггер состояния пользовательского устройства!

Custom state triggers on GitHub.

<VisualStateManager.VisualStateGroups> 
    <VisualStateGroup> 
     <VisualState x:Name="desktop"> 
      <VisualState.StateTriggers> 
       <triggers:DeviceFamilyStateTrigger DeviceFamily="Desktop" /> 
      </VisualState.StateTriggers> 
      <VisualState.Setters> 
       <Setter Target="richTB.Width" Value="300" /> 
      </VisualState.Setters> 
     </VisualState> 
     <VisualState x:Name="mobile"> 
      <VisualState.StateTriggers> 
       <triggers:DeviceFamilyStateTrigger DeviceFamily="Mobile" /> 
      </VisualState.StateTriggers> 
      <VisualState.Setters> 
       <Setter Target="richTB.Width" Value="200" /> 
      </VisualState.Setters> 
     </VisualState> 
    </VisualStateGroup> 
<VisualStateManager.VisualStateGroups> 
+0

Хотя DeviceFamilyStateTrigger - достойное решение, вы должны держать Continuum в уме. В какой-то момент в ближайшее время ваше приложение «Мобильное» будет работать на 23-дюймовом экране. – Bart

+0

В итоге мне пришлось вставлять его в пользовательский элемент управления, но он отлично работал! Спасибо! – m0ngr31

Смежные вопросы