如何使图像\视频\ flash在超链接鼠标悬停上显示?

时间:2014-12-05 08:55:28

标签: c# wpf image hyperlink onmouseover

我有想法在鼠标悬停时在框架(XAML)中显示图像。 但是我想为每个超链接显示不同的图像。我认为它只能在C#而不是XAML本身。

简单地说 - 我在XAML中有1个(单个)帧。我希望它的源代码可以在鼠标悬停时更改。例如,当鼠标位于超链接“Link1”上时 - 我希望框架导航到名为m1x的页面;当鼠标悬停在超链接“Link2”上时 - 导航到m2x等

这可能吗?

示例:

XAML:

    <DockPanel>
        <Frame x:Name="movFrame" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" RenderTransformOrigin="0.494,1.151" Margin="0,170,0,-104" Width="267" />

    </DockPanel>

超链接

    <Hyperlink x:Name="Link1" RequestNavigate="Hyperlink_RequestNavigateI" NavigateUri="P2.xaml"><Run Text="1. Get Properties of Chemical Element (Si)"/></Hyperlink>

C#

Hyperlink_RequestNavigateI

public void Hyperlink_RequestNavigateI(object sender, RequestNavigateEventArgs e)
{
    Uri m1x = new Uri("m1.xaml", UriKind.Relative);
    if (Link1.IsMouseOver)
    {
        movFrame.Dispatcher.Invoke(delegate
        {
            movFrame.Source = m1x;
        });
    }
}  

1 个答案:

答案 0 :(得分:0)

如果您确定使用XAML和C#,那么您可以选择弹出;我提到过'ToggleButton'。但它可以根据您的意愿替换为超链接;

<ToggleButton>
    <ToggleButton.Template>
    <Popup Placement="Bottom" HorizontalOffset="250" VerticalOffset="10" 
    PlacementTarget="{Binding ElementName=Button1}"
    IsOpen="{Binding IsChecked}" StaysOpen="False">
         <local:PopupView/>
    </Popup>
    </ToggleButton.Template>
</ToggleButton>

StaysOpen =“False” =&gt;最初它将处于关闭状态。