2015-01-14 4 views
0

Я получаю исключения для анализа XAML при использовании определенного стиля GroupBox несколько раз. Я сохраняю стиль в UserControl.Resources.Настройка заголовка GroupBox в стиле GroupBox

Вот пример упрощенного стиля, не причина исключения XAML синтаксического анализа:

<Style x:Key="MyGroupBoxStyle" TargetType="GroupBox" BasedOn="{StaticResource {x:Type GroupBox}}"> 
    <Setter Property="BorderThickness" Value="5" /> 
    <Setter Property="Header" Value="Hello World!" /> 
</Style> 

Вот еще один, который не причина проблемы.

<Style x:Key="MyGroupBoxStyle" TargetType="GroupBox" BasedOn="{StaticResource {x:Type GroupBox}}"> 
    <Setter Property="BorderThickness" Value="5" /> 
    <Setter Property="Header"> 
     <Setter.Value> 
      Hello World! 
     </Setter.Value> 
    </Setter> 
</Style> 

Это один однако делает вызвать проблему:

<Style x:Key="MyGroupBoxStyle" TargetType="GroupBox" BasedOn="{StaticResource {x:Type GroupBox}}"> 
    <Setter Property="BorderThickness" Value="5" /> 
    <Setter Property="Header"> 
     <Setter.Value> 
      <TextBlock Text="Hello World!" /> 
     </Setter.Value> 
    </Setter> 
</Style> 

Опять же, это только проблема, когда я использую стиль на более чем одинGroupBox. Если я использую его только один раз, я не получаю исключение синтаксиса XAML. И это не должно быть просто TextBlock. Я думаю, что это UIElement.

Любые идеи? Благодаря!

+0

Не совсем уверен, но BasedOn = "{StaticResource {x: Тип GroupBox}}" кажется неправильным для меня. Попробуйте это без этого. – Xeun

+0

Все еще не работает при удалении 'BasedOn'. Используя 'BasedOn' таким образом, я могу продолжать использовать ранее определенный общий стиль для' GroupBox'es. – savetruman

ответ

1

Вы не можете установить содержимое заголовка в другой элемент управления пользовательского интерфейса в стиле. Попробуйте создать таблицу данных.

<Window.Resources> 
    <Style x:Key="MyGroupBoxStyle" TargetType="GroupBox" BasedOn="{StaticResource {x:Type GroupBox}}"> 
     <Setter Property="BorderThickness" Value="5" /> 
     <Setter Property="HeaderTemplate"> 
      <Setter.Value> 
       <DataTemplate> 
        <TextBlock Text="Hello World!!!!!!"/> 
       </DataTemplate>      
      </Setter.Value> 
     </Setter> 
    </Style> 
</Window.Resources> 
<StackPanel> 
    <GroupBox Style="{StaticResource MyGroupBoxStyle}" Height="200" Width="200"/> 
    <GroupBox Style="{StaticResource MyGroupBoxStyle}" Height="200" Width="200"/> 
</StackPanel> 
+0

Вот и все! Благодаря! – savetruman

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