WPF应用程序中,调用用户控件时,可以访问到在这个用户控件Xaml代码中的所有内容,这样岂不是不安全?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF应用程序中,调用用户控件时,可以访问到在这个用户控件Xaml代码中的所有内容,这样岂不是不安全?相关的知识,希望对你有一定的参考价值。

想请教同仁一个问题。。WPF应用程序中,调用用户控件时,通过该用户控件的对象可以访问到在这个用户控件Xaml代码中写的TextBlock,TextBlock等所有内容,这样岂不是不安全?后台代码中的控制逻辑也没什么用处了,Xaml显示部分可以直接修改,这是出于一种什么考虑?可以把前台的Xaml代码中的内容都设定为私有吗?

参考技术A 当然可以,只要设置IsReadOnly = true;追问

这样的话,后台代码也无法修改了

追答

那还有一种比较赖皮的做法,在这些控件上盖一层透明的rectangle或border

追问

没用的,通过对象名仍然可以访问,你没明白我问的问题…

追答

好吧 = = sorry

追问

没事啦~还是谢谢你的关注

参考技术B 在usercontrol的前面加入x:ClassModifier="internal",后台的class前面也要相应地改。
这样其他用户调用你的控件就没法访问里面的控件了。本回答被提问者采纳

以上是关于WPF应用程序中,调用用户控件时,可以访问到在这个用户控件Xaml代码中的所有内容,这样岂不是不安全?的主要内容,如果未能解决你的问题,请参考以下文章

WPF:自定义控件布局

VB跨线程调用WPF控件

wpf中调用winform用户控件的方法

Winform 中的键盘预览调用 Wpf 用户控件

处置WPF用户控件

处理 WPF 用户控件