我有想法在鼠标悬停时在框架(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#
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;
});
}
}
答案 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;最初它将处于关闭状态。