2
我有一个verticalscrollbarvisibility设置为auto的文本框。我想做一个测试,以确定滚动条在运行时是否真的可见。我曾尝试声明:silverlight textbox scrollbarvisibility
如果(textbox1.VerticalScrollBarVisibility == ScrollBarVisibility.Visible)
,但它不工作。有任何想法吗?
我有一个verticalscrollbarvisibility设置为auto的文本框。我想做一个测试,以确定滚动条在运行时是否真的可见。我曾尝试声明:silverlight textbox scrollbarvisibility
如果(textbox1.VerticalScrollBarVisibility == ScrollBarVisibility.Visible)
,但它不工作。有任何想法吗?
首先发生在静态类下面的扩展方法(无论是放置类相同的命名空间的代码或名称空间,其余包含在你的代码文件using
声明): -
public static IEnumerable<DependencyObject> Descendents(this DependencyObject root)
{
int count = VisualTreeHelper.GetChildrenCount(root);
for (int i = 0; i < count; i++)
{
var child = VisualTreeHelper.GetChild(root, i);
yield return child;
foreach (var descendent in Descendents(child))
yield return descendent;
}
}
有了这个扩展方法,你可以在滚动条的文本框中挖出ScrollViewer,并测试它的ComputedVerticalScrollBarVisibility
。
if (textbox1.Descendents().OfType<ScrollViewer>()
.FirstOfDefault().ComputedVerticalScrollBarVisibility == Visibility.Visible)
嗨安东尼, 我想我可能会错过一些东西。我尝试实现以下错误时遇到以下错误: 1)'System.Windows.Controls.ScrollViewer'是'类型',但用作变量 2)方法'OfType'没有重载需要'1'参数 – 2009-12-02 00:16:07
Oops都是实际上相同的问题,输入OfType错误的语法,回答调整 – AnthonyWJones 2009-12-02 10:17:47