【问题标题】:Image not showing on Silveright controlSilveright 控件上未显示图像
【发布时间】:2014-03-29 03:33:17
【问题描述】:

我的Button 在我的Silverlight 应用程序中有一个自定义样式。

我使用的是静态样式和控件模板。在 VisualStudio 设计器中,我可以在按钮上看到图像,但是当我运行应用程序时,图像没有显示。

这是样式的XAML

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

</Style>

这是 ControlTemplate 的 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" />

【问题讨论】:

    标签: c# .net silverlight xaml


    【解决方案1】:

    将图像 Build Action 设置为 Resource 并将您的代码更改为:

    <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" />
    

    【讨论】:

    • 知道了,谢谢,您的回答很有帮助。我还将内部网格更改为 ContentPresenter。
    • 你的编辑成功了,我很好奇 pack://application 做了什么?
    猜你喜欢
    • 1970-01-01
    • 2017-02-18
    • 1970-01-01
    • 1970-01-01
    • 2012-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多