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