图像不会出现在按钮ControlTemplate WPF上

时间:2011-06-02 23:40:01

标签: wpf image xaml styles controltemplate

我遇到了ControlTemplates的问题。

当我尝试将图像放入按钮时,图像不会出现在应用程序中。风格如下:

    <Style x:Key="FocusVisual">
        <Setter Property="Control.Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Control}">
                    <Grid Margin="3 2">
                        <Rectangle Name="r1" StrokeThickness="1" Stroke="Black" StrokeDashArray="2 2"/>
                        <Border Name="border" Width="{TemplateBinding ActualWidth}" Height="{TemplateBinding ActualHeight}"  CornerRadius="130" BorderThickness="1" />
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

    <Style x:Key="ShadowStyle">
        <Setter Property="Control.Foreground" Value="LightGray" />
    </Style>

    <Style x:Key="roundedButtonStyle" TargetType="Button">

        <Setter Property="OverridesDefaultStyle" Value="True"/>
        <Setter Property="FontFamily" Value="Verdana"/>
        <Setter Property="FontSize" Value="11px"/>
        <Setter Property="FontWeight" Value="Bold"/>
        <Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}" />

        <Setter Property="Background" >
            <Setter.Value>
                <LinearGradientBrush StartPoint="0,0" EndPoint="0,0.6" >
                    <GradientStop Color="#FFEEEEEE" Offset="0.2"/>
                    <GradientStop Color="#FFDDDDDD" Offset="0.85"/>
                    <GradientStop Color="#FFCCCCCC" Offset="1"/>
                </LinearGradientBrush>
            </Setter.Value>
        </Setter>

        <Setter Property="Template">

            <Setter.Value>

                <ControlTemplate TargetType="{x:Type Button}">
                    <Border Name="border" BorderThickness="1" Padding="4,2" BorderBrush="#FFCCCCCC" CornerRadius="130,130,130,130" Background="{TemplateBinding Background}">
                        <Grid >
                            <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" Name="contentShadow" Style="{StaticResource ShadowStyle}">
                                <ContentPresenter.RenderTransform>
                                    <TranslateTransform X="1.0" Y="1.0" />
                                </ContentPresenter.RenderTransform>
                            </ContentPresenter>
                            <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" Name="content"/>
                        </Grid>
                    </Border>

                    <ControlTemplate.Triggers>

                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter TargetName="border" Property="BorderBrush" Value="#FF4788c8" />
                            <Setter Property="Foreground" Value="#FF4788c8" />
                        </Trigger>

                        <Trigger Property="IsPressed" Value="True">

                            <Setter Property="Background" >
                                <Setter.Value>
                                    <LinearGradientBrush StartPoint="0,0" EndPoint="0,0.6" >
                                        <GradientStop Color="#FF87BEF5" Offset="0.2"/>
                                        <GradientStop Color="AliceBlue" Offset="0.85"/>
                                        <GradientStop Color="#FF87BEF5" Offset="1"/>
                                    </LinearGradientBrush>
                                </Setter.Value>
                            </Setter>

                            <Setter TargetName="content" Property="RenderTransform" >
                                <Setter.Value>
                                    <TranslateTransform Y="1.0" />
                                </Setter.Value>
                            </Setter>
                        </Trigger>

                        <Trigger Property="IsDefaulted" Value="True">
                            <Setter TargetName="border" Property="BorderBrush" Value="#FF282828" />
                        </Trigger>

                        <Trigger Property="IsFocused" Value="True">
                            <Setter TargetName="border" Property="BorderBrush" Value="#FF282828" />
                        </Trigger>

                        <Trigger Property="IsEnabled" Value="False">
                            <Setter TargetName="border" Property="Opacity" Value="0.7" />
                            <Setter Property="Foreground" Value="Gray" />
                        </Trigger>

                    </ControlTemplate.Triggers>

                </ControlTemplate>
            </Setter.Value>
        </Setter>

    </Style>        

我尝试将图像放在按钮中:

            <Button Name="btnZoom" Style="{StaticResource roundedButtonStyle}" Width="25" Height="25" Margin="5" Click="btnZoom_Click">
                <StackPanel>
                    <Image Source="/Resources/lupa.png"/>
                </StackPanel>
            </Button>  

在Visual Studio 2010的可视化编辑器中显示图像,但是当我运行应用程序时,图像不存在。

请原谅我可怕的英语。

感谢名单。

2 个答案:

答案 0 :(得分:1)

确保将图像的构建操作设置为资源(不是内容或嵌入式资源)

答案 1 :(得分:0)

无法重现。

在测试项目中尝试,你的上下文可能在这里有问题,尝试缩小问题范围。