2014-03-29 65 views
0

我有一個自定義樣式到我的Button在我的Silverlight應用程序。圖像沒有顯示在Silverlight控制

我使用靜態樣式和控制模板。在VisualStudio設計器中,我可以看到按鈕上的圖像,但是當我運行應用程序時,圖像未顯示。

這裏是XAML的風格

<Style x:Key="PlayButtonStyle" TargetType="Button"> 
    <Setter Property="Foreground" Value="DarkGreen" /> 
    <Setter Property="Template" Value="{StaticResource PlayButtonControlTemplate}"/> 

</Style> 

這裏是XAML的控件模板

<ControlTemplate x:Key="PlayButtonControlTemplate" TargetType="Button"> 
    <Border x:Name="Border"> 
     <Border.Background> 
      <SolidColorBrush Color="{StaticResource ControlNormalColor}" /> 
     </Border.Background> 
     <VisualStateManager.VisualStateGroups> 
      <VisualStateGroup x:Name="CommonStates"> 
       <VisualStateGroup.Transitions> 
        <VisualTransition GeneratedDuration="0:0:0.5" /> 
        <VisualTransition GeneratedDuration="0" To="Pressed" /> 
       </VisualStateGroup.Transitions> 
       <VisualState x:Name="Normal"/> 
       <VisualState x:Name="MouseOver"> 
        <Storyboard> 
         <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)" 
              Storyboard.TargetName="Border"> 
          <EasingColorKeyFrame KeyTime="0" Value="{StaticResource ControlMouseOverColor}" /> 
         </ColorAnimationUsingKeyFrames> 
        </Storyboard> 
       </VisualState> 
       <VisualState x:Name="Pressed"> 
        <Storyboard> 
         <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)" 
              Storyboard.TargetName="Border"> 
          <EasingColorKeyFrame KeyTime="0" Value="{StaticResource ControlPressedColor}" /> 
         </ColorAnimationUsingKeyFrames> 
        </Storyboard> 
       </VisualState> 
       <VisualState x:Name="Disabled"> 
        <Storyboard> 
         <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)" 
              Storyboard.TargetName="Border"> 
          <EasingColorKeyFrame KeyTime="0" Value="{StaticResource DisabledControlColor}" /> 
         </ColorAnimationUsingKeyFrames> 
         <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(TextBlock.Foreground).(SolidColorBrush.Color)" 
              Storyboard.TargetName="Border"> 
          <EasingColorKeyFrame KeyTime="0" Value="{StaticResource DisabledForegroundColor}" /> 
         </ColorAnimationUsingKeyFrames> 
        </Storyboard> 
       </VisualState> 
      </VisualStateGroup> 
     </VisualStateManager.VisualStateGroups> 
     <Grid Width="55" Height="25"> 
      <Image x:Name="DefaultImage" Source="Images/VideoPlayer/play_button.png" Opacity="1" /> 
      <Image x:Name="HoverImage" Source="Images/VideoPlayer/play_button_hover.png" Opacity="0" /> 
     </Grid> 


    </Border> 
</ControlTemplate> 

這是我如何分配它

<Button x:Name="playPauseButton" Content="Play" Style="{StaticResource PlayButtonStyle}" Click="playPauseButton_Click" /> 

回答

1

設置圖像生成操作的資源和你的代碼更改爲:

<Image x:Name="DefaultImage" Source="pack://application:,,,/[Your namespace];component/Images/VideoPlayer/play_button.png" Opacity="1" /> 

不要忘記更改爲命名空間

它應該是足夠的。

編輯

左看右看之後,我認爲你需要做的僅僅是這樣:

<Image x:Name="DefaultImage" Source="/[Your namespace];component/Images/VideoPlayer/play_button.png" Opacity="1" /> 
+0

由於生病嘗試。 – IEnumerable

+0

得到它感謝,你的答案幫助。 我也將內部網格更改爲ContentPresenter。 – IEnumerable

+0

你的編輯工作,我好奇什麼包:/ /應用程序呢? – IEnumerable