基于WPF實現(xiàn)簡單放大鏡效果
更新時間:2022年12月27日 10:01:39 作者:驚鏵
這篇文章主要為大家詳細介紹了WPF如何實現(xiàn)簡單放大鏡效果,文中的示例代碼講解詳細,對我們學習或工作有一定幫助,感興趣的小伙伴可以了解一下
WPF 如何實現(xiàn)簡單放大鏡
框架使用.NET40;
Visual Studio 2019;
實現(xiàn)此功能需要用到 VisualBrush ,放大鏡展現(xiàn)使用 Canvas -> Ellipse .
- 可以使用
VisualBrush創(chuàng)建放大效果。 - 設置
Visual獲取或設置畫筆的內容。 - 設置
ViewboxUnitsAbsolute坐標系與邊界框無關。 - 設置
Viewbox獲取或設置TileBrush圖塊中內容的位置和尺寸。 - 當鼠標移動獲取當前坐標點修改
VisualBrush的Viewbox。 - 鼠標移動修改
Ellipse的Canvas.Left與Canvas.Top跟隨鼠標。

實現(xiàn)代碼
1) xaml 代碼如下:
<Grid>
????????<Image?Source="0.png"?Stretch="Fill"
???????????????Name="image"?MouseMove="image_MouseMove"
???????????????MouseEnter="image_MouseEnter"?MouseLeave="image_MouseLeave"/>
????????<Canvas?IsHitTestVisible="False"?Name="MagnifierPanel">
????????????<Ellipse?Stroke="LightBlue"?Name="MagnifierCircle"?
?????????????????????Height="200"?Width="200">
????????????????<Ellipse.Fill>
????????????????????<VisualBrush?x:Name="MagnifierBrush"??
?????????????????????????????????Visual="{Binding?ElementName=image}"?
?????????????????????????????????ViewboxUnits="Absolute"/>
????????????????</Ellipse.Fill>
????????????</Ellipse>
????????</Canvas>
????</Grid>
2) xaml.cs 代碼如下:
private?void?image_MouseMove(object?sender,?MouseEventArgs?e)
????????{
????????????var?center?=?e.GetPosition(image);
????????????var?length?=?MagnifierCircle.ActualWidth?*?_factor;
????????????var?radius?=?length?/?2;
????????????var?viewboxRect?=?=?new?Rect(center.X?-?radius,?center.Y?-?radius,?length,?length);
????????????MagnifierBrush.Viewbox?=?viewboxRect;
????????????MagnifierCircle.SetValue(Canvas.LeftProperty,?center.X?-?MagnifierCircle.ActualWidth?/?2);
????????????MagnifierCircle.SetValue(Canvas.TopProperty,?center.Y?-?MagnifierCircle.ActualHeight?/?2);
????????}
????????private?void?image_MouseEnter(object?sender,?MouseEventArgs?e)
????????{
????????????MagnifierCircle.Visibility?=?Visibility.Visible;
????????}
????????private?void?image_MouseLeave(object?sender,?MouseEventArgs?e)
????????{
????????????MagnifierCircle.Visibility?=?Visibility.Hidden;
????????}效果圖

到此這篇關于基于WPF實現(xiàn)簡單放大鏡效果的文章就介紹到這了,更多相關WPF放大鏡內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
c#中l(wèi)ist.FindAll與for循環(huán)的性能對比總結
這篇文章主要給大家總結介紹了關于c#中l(wèi)ist.FindAll與for循環(huán)的性能,文中通過詳細的示例代碼給大家介紹了這兩者之間的性能,對大家的學習或工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧。2017-10-10
C#連接Oracle數(shù)據(jù)庫使用Oracle.ManagedDataAccess.dll
這篇文章主要介紹了C#使用Oracle.ManagedDataAccess.dll的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11

