Кнопка гиперссылки Silverlight с изображением (эффект наведения на изображение) - PullRequest
0 голосов
/ 28 января 2012

Я пытаюсь создать кнопку с гиперссылкой с изображением, где изображение будет иметь эффект при наведении (изменено на MouseOver).Мне удалось создать кнопку с гиперссылкой с одним изображением, но на ней застрял эффект парения.Пожалуйста, помогите!

Вот мой пользовательский контроль:

<UserControl.Resources>
        <Style x:Key="NavigationButton_Middle" TargetType="HyperlinkButton">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="HyperlinkButton">
                        <Grid Background="{TemplateBinding Background}" Cursor="{TemplateBinding Cursor}">
                            <VisualStateManager.VisualStateGroups>
                                <VisualStateGroup x:Name="CommonStates">
                                    <VisualState x:Name="Normal"/>
                                    <VisualState x:Name="MouseOver">
                                        <Storyboard>
                                            <ColorAnimation Storyboard.TargetName="Background"
                                                            Storyboard.TargetProperty="Color"
                                                            To="White"
                                                            Duration="00:00:0.1">
                                            </ColorAnimation>
                                        </Storyboard>
                                    </VisualState>
                                    <VisualState x:Name="Pressed"/>
                                    <VisualState x:Name="Disabled"/>
                                </VisualStateGroup>
                            </VisualStateManager.VisualStateGroups>
                            <Border x:Name="Edge" BorderBrush="#FFD9D9D9" BorderThickness="1" CornerRadius="1" Height="32" Width="48">
                                <Border.Background>
                                    <SolidColorBrush x:Name="Background" Color="#FFF4F4F4" />
                                </Border.Background>
                                <ContentPresenter Content="{TemplateBinding Content}" />
                            </Border>
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </UserControl.Resources>

XAML:

<HyperlinkButton x:Name="HomeButton" Style="{StaticResource NavigationButton_Middle}" ToolTipService.ToolTip="Home" Visibility="Visible" Margin="0" HorizontalAlignment="Right">
                    <Image Source="home.png" Margin="13,5,13,5" Height="20" Width="20"/>
                </HyperlinkButton>

Спасибо за вашу помощь заранее!

1 Ответ

0 голосов
/ 30 января 2012

Поскольку вы хотите изменить фактическое содержимое кнопки (что неизвестно стилю), трудно обойтись без повторного использования стиля.Однако, если вы не возражаете против этого, вы можете переместить изображение в шаблон, где сейчас находится ContentPresenter.Затем вы можете изменить его по имени из вашей раскадровки.

...