2014-12-05 57 views
0

我有在鼠標懸停的框架(XAML)中顯示圖像的想法。 但是我想爲每個超鏈接顯示不同的圖像。我認爲它只能用C#而不是XAML本身。如何製作一個image video flash來顯示超鏈接mouseover?

簡而言之 - 我在XAML中有1個(單個)框架。我希望它的源代碼可以在mouseover上進行更改。例如,當鼠標懸停在超鏈接「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; 
     }); 
    } 
} 
+0

如果你可以在XAMl中顯示1幀,那麼當然你可以使用多個,但我個人更喜歡c# – 2014-12-05 09:05:32

+0

也許看看JQuery解決方案,如http://lukasz-design.pl/codecanyon/mTip/index。 HTML和http://qtip2.com/demos – 2014-12-05 09:06:37

+0

我知道如何使用JavaScript或jquery,但它是太多的代碼來集成在C#WPF。 – user3410566 2014-12-05 09:23:45

回答

0

如果確定使用XAML和C#中使用,那麼你可以選擇彈出;我提到'ToggleButton'。但它可以根據您的意願用Hyperlink替換;

<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 = 「假」 =>最初它會在關閉狀態。

+0

謝謝@Dinesh! – user3410566 2017-03-31 10:30:00

+0

@ user3410566,如果您認爲解決方案有幫助,請將其標記爲「答案」,這對其他參考人員會有幫助。 – 2017-04-04 04:05:28