2015-05-12 4 views
0

У меня есть этот набор ресурсов, который я использую, чтобы создать стиль кнопки, который изменяет изображение на кнопке при наведении курсора, нажатии и состоянии простоя.Создание стиля кнопки с помощью кнопки метро

<Window.Resources> 
     <Image x:Key="LoginIdle" Source="/content/images/btn-login-idle.png" /> 
     <Image x:Key="LoginHover" Source="/content/images/btn-login-hover.png" /> 
     <Image x:Key="LoginActive" Source="/content/images/btn-login-active.png" /> 

     <Style x:Key="LoginButtonStyle" TargetType="{x:Type Button}"> 
      <Setter Property="OverridesDefaultStyle" Value="True"/> 
      <Setter Property="Content" Value="{StaticResource LoginIdle}"/> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="Button"> 
         <ControlTemplate.Triggers> 
          <Trigger Property="IsMouseOver" Value="True"> 
           <Setter Property="Background" Value="{DynamicResource LoginIdle}"/> 
          </Trigger> 
          <Trigger Property="IsPressed" Value="True"> 
           <Setter Property="Background" Value="{DynamicResource LoginActive}"/> 
          </Trigger> 
         </ControlTemplate.Triggers> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </Window.Resources> 

Я попытался надеть на кнопку.

<Button Style="{DynamicResource LoginButtonStyle}" Name="LoginButton" Click="LoginBtn_Click"> 
    </Button> 

Проблема в том, что изображения нет.

Я также попытался установить значение содержимого на кнопке и просто изменить изображения на внутреннем коде, но когда я пытаюсь сделать фон прозрачным, вокруг моего изображения будет граница. Я думаю, это из-за естественного поведения кнопки. Не совсем уверен.

enter image description here

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

ответ

0

Все ли изображения отсутствуют? Или только бездействующий?

Если нет только Idle Image, попробуйте ли установить свойство фона вместо свойства Content перед вашими триггерами? И использовать динамический ресурс, как в ваших триггерах?

+0

Я не вижу никакого изображения вообще. Я даже пытался его зависнуть. – ljpv14

+0

Попробуйте использовать ImageBrush вместо изображения. И уверены ли вы, что у вас есть правильные пути для ваших изображений? – mgarant

+0

Попытался изменить содержимое на фоновое изображение на моем сеттере. Еще нет изображения. я уверен в пути, потому что, когда я пытаюсь установить значение содержимого кнопки с использованием статического ресурса и моего образа. изображение отображается, как показано в моем сообщении. Я относительно новичок в wpf. Будет выполнять быстрый поиск по использованию ImageBrush. Спасибо за советы. – ljpv14

0

Для тех, кто интересуется ответом на мой вопрос. После проведения дополнительных исследований. Я узнал, что мне нужно добавить эту строку внутри ControlTemplate.

<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/> 

Затем все триггеры работают нормально.

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