最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于WPF實(shí)現(xiàn)簡單放大鏡效果

 更新時(shí)間:2022年12月27日 10:01:39   作者:驚鏵  
這篇文章主要為大家詳細(xì)介紹了WPF如何實(shí)現(xiàn)簡單放大鏡效果,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)或工作有一定幫助,感興趣的小伙伴可以了解一下

WPF 如何實(shí)現(xiàn)簡單放大鏡

框架使用.NET40

Visual Studio 2019;

實(shí)現(xiàn)此功能需要用到 VisualBrush ,放大鏡展現(xiàn)使用 Canvas -> Ellipse .

  • 可以使用 VisualBrush 創(chuàng)建放大效果。
  • 設(shè)置 Visual 獲取或設(shè)置畫筆的內(nèi)容。
  • 設(shè)置 ViewboxUnits Absolute 坐標(biāo)系與邊界框無關(guān)。
  • 設(shè)置 Viewbox 獲取或設(shè)置 TileBrush 圖塊中內(nèi)容的位置和尺寸。
  • 當(dāng)鼠標(biāo)移動獲取當(dāng)前坐標(biāo)點(diǎn)修改 VisualBrush 的 Viewbox。
  • 鼠標(biāo)移動修改 Ellipse 的 Canvas.Left 與 Canvas.Top 跟隨鼠標(biāo)。

實(shí)現(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;
????????}

效果圖

到此這篇關(guān)于基于WPF實(shí)現(xiàn)簡單放大鏡效果的文章就介紹到這了,更多相關(guān)WPF放大鏡內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 手動編譯C#代碼的方法

    手動編譯C#代碼的方法

    在本文里小編給大家分享的是關(guān)于手動編譯C#代碼的方法和步驟,對此有需要的朋友們可以學(xué)習(xí)下。
    2018-12-12
  • 最新評論

    凌源市| 商南县| 聂拉木县| 澳门| 龙泉市| 潜江市| 甘孜| 永川市| 婺源县| 贵阳市| 澜沧| 孙吴县| 镇远县| 丹凤县| 万州区| 东源县| 班玛县| 平罗县| 柏乡县| 栖霞市| 天门市| 鲁山县| 静安区| 铁岭市| 泊头市| 出国| 靖州| 英超| 苍溪县| 博兴县| 白山市| 唐海县| 桦川县| 陵水| 子洲县| 龙井市| 扎兰屯市| 马鞍山市| 宜兰市| 奉化市| 揭西县|