2013-10-09 2 views
0

У меня есть кнопка 2 на окне. Я применяю стиль. но получил это исключение.Получение исключения при использовании стиля в кнопке в wpf

'Set property' System.Windows.FrameworkElement.Style 'выбрал исключение.' Номер линии «38» и позиция линии «7».

Мой код.

<Window.Resources> 
     <Image x:Key="btnconnect" Source="images/img-1.png" /> 
     <Image x:Key="btnshow" Source="images/img-2.png" /> 
     <Image x:Key="btnclick" Source="images/img-2clicked.png"/> 
     <Style x:Key="buttonconnect" TargetType="Button"> 
      <Setter Property="Content" Value="{StaticResource btnconnect}"> 
      </Setter> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="Button"> 
         <Grid x:Name="grid"> 
          <Border x:Name="border" CornerRadius="8" BorderThickness="2"> 
           <ContentPresenter HorizontalAlignment="Center" 
          VerticalAlignment="Center" 
          TextElement.FontWeight="Bold"></ContentPresenter> 
          </Border> 
         </Grid> 
         <ControlTemplate.Triggers> 
          <Trigger Property="IsPressed" Value="true"> 
           <Setter Value="{StaticResource btnclick}" /> 
          </Trigger> 
          <Trigger Property="IsEnabled" Value="False"> 
           <Setter Property="Opacity" TargetName="grid" Value="0.25"/> 
          </Trigger> 
         </ControlTemplate.Triggers> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
     <Style x:Key="buttonshow" TargetType="{x:Type Button}"> 
      <Setter Property="Content" Value="{StaticResource btnshow}" /> 
     </Style> 
    </Window.Resources> 
    <Grid> 
     <Button Margin="50 100 50 100" Style="{StaticResource buttonconnect}" Height="50" Width="120"/> 
     <Button Margin="50 110 50 10" Style="{StaticResource buttonshow}" Height="50" Width="120"/> 
    </Grid> 

ответ

1
<Setter Value="{StaticResource btnclick}" /> 

Я думаю, что ваш забыл указать имущество, на которое применяется сеттер.

Хотя я не уверен, что это вызовет ошибку времени выполнения.

В принципе, что вы должны делать (в идеале перед публикацией), старайтесь удалить столько кода, сколько сможете, но при этом сможете воспроизвести свою проблему, а затем опубликуйте свой вопрос с помощью упрощенного кода, если вы все еще не знаете, где ошибка исходит.

+0

ОК сэр. ваш ответ правильный. скажи мне еще одну вещь. На этот раз я использую одну сетку. Если у меня есть вложенная сетка или другой ребенок внутри сетки. В этом случае я получаю доступ к этому. В настоящее время <Сетка х: Name = "сетка">

+0

Сэр, если мой ответ верен, отметьте его как «Ответ». Если у вас есть другие вопросы, пожалуйста, создайте еще один вопрос (после того, как вы попробовали и сделали некоторые исследования: на удивление вы можете получить доступ к детям Grid через свойство Grid.Children, унаследованное от Panel) – franssu

+0

Хорошо спасибо за помощь. –

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