我正在嘗試爲WPF創建一個LinkLabel控件。基本上,我要從TextBlock創建LinkLabel並處理MouseEnter,MouseLeave和MouseLeftButtonUp事件。在後端,我有一個基類,它具有您期望通過LinkLabel看到的屬性。在WPF中的其他大多數可單擊控件中,都有一個默認的MouseEnter動畫,其中控件變爲冰藍色。我想在鼠標光標進入TextBlock時複製這種行爲。我不確定是否需要從ButtonBase派生或沿着這些線派生。我有一個能夠將光標更改爲一隻手,並在單擊「LinkLabel」時處理該事件。如果訪問這個看似默認的變色動畫,那麼我可能不得不求助於一個簡單的前景色交換而沒有平滑過渡。如果任何人之前已經創建了一個自定義的WPF LinkLabel,或者對此問題有任何建議,您的意見將非常感謝。WPF LinkLabel實施策略
0
A
回答
4
您可以創建的WinForms'的LinkLabel的,現在使用的TextBlock的組合和超鏈接的等價物:
<TextBlock>Here is a <Hyperlink NavigateUri="http://example.com">link</Hyperlink></TextBlock>
你不會得到的‘冰藍色’鼠標懸停效果,但你會得到的手形光標。我相信你可以使用簡單的風格觸發器來引入鼠標移過的效果。
「NavigateUri」屬性適用於超鏈接位於Frame控件內的導航風格的應用程序。在標準的WPF應用程序中,您將需要處理超鏈接的Click事件,並使用Process.Start以正確的URL啓動Web瀏覽器。
0
我只是創建了一個按鈕的樣式,並將樣式應用到按鈕,只要你想要LinkLabel的樣子。單擊按鈕的Click事件用於執行單擊文本時的功能。
<Style x:Key="LinkLabelButtonStyle" TargetType="Button">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Foreground" Value="CornflowerBlue"></Setter>
</Trigger>
</Style.Triggers>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Background="Transparent">
<ContentPresenter/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock TextDecorations="Underline" Text="{TemplateBinding Content}"></TextBlock>
</DataTemplate>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="DarkBlue"></Setter>
<Setter Property="MinWidth" Value="90"></Setter>
<Setter Property="HorizontalAlignment" Value="Left"></Setter>
<Setter Property="Padding" Value="5"></Setter>
<Setter Property="Margin" Value="5"></Setter>
<Setter Property="Cursor" Value="Hand"></Setter>
</Style>
你可以把上面款式在Window.Resources這樣你就可以在整個窗口中使用它。
然後將樣式應用到按鈕,只要你想要LinkLabel外觀。
<Button Name="LinkLabelLookALikeButton" Content="Text goes here" Style="{StaticResource LinkLabelButtonStyle}" Click="Event_Goes_Here">
</Button>
希望這有助於!
相關問題
- 1. ColdFusion實施策略模式
- 2. 如何實施XACML策略?
- 3. aws ec2 createInstance策略實施
- 4. 如何實施策略設計模式?
- 5. Amazon Cognito:實施密碼過期策略
- 6. 面向對象的實施策略
- 7. 對發票實施銷售稅策略
- 8. 什麼是更好的實施策略?
- 9. 實施ServiceBusTransientErrorDetectionStrategy的指數重試策略
- 10. 實施廣告網絡策略
- 11. WCF數據服務實施策略
- 12. 如何根據現有策略選擇實施新數據結構的策略?
- 13. WPF - IScrollInfo實施
- 14. jBPM如何實施決策
- 15. TFS 2015 - 自定義路徑策略實施?
- 16. Asp net核心內容安全策略實施
- 17. 實施不同存儲策略的模式
- 18. 密碼重置使用UnboundID強制實施目錄策略
- 19. 測試以驗證ruby子類實施策略方法
- 20. 這是一個正確的策略實施
- 21. 實施多視圖控制器的策略
- 22. 如何在Go中實施策略模式?
- 23. 可靠的遺忘卡夫卡生產者實施策略
- 24. 數據映射器和關係:實施策略?
- 25. 如何在Web MVC框架中正確實施策略模式?
- 26. 當startKey是未知的如何實施couchdb/pouchDb的策略
- 27. 實施多階段過程時的TDD策略?
- 28. 我可以實施if-new-create JPA策略嗎?
- 29. 在IOS中實施免責聲明屏幕的策略
- 30. 這個Google LVL策略實施是否合理安全?