ユーザー コントロールを含むカスタム ポップアップ ウィンドウを備えた ComboBox を含む WPF ユーザー コントロールを構築しました。内部コントロール (ポップアップ内のコントロール) には、ホスト ページが読み取れるようにメイン ユーザー コントロールで公開したいプロパティがいくつかあります。内部コントロールに書き込みます。
これを行うのに問題があります。私が間違っていることがありますか、それとも私が行っていることは賢明ではありませんか?
敬具 クリスチャン・アンデルセン
ユーザー コントロールを含むカスタム ポップアップ ウィンドウを備えた ComboBox を含む WPF ユーザー コントロールを構築しました。内部コントロール (ポップアップ内のコントロール) には、ホスト ページが読み取れるようにメイン ユーザー コントロールで公開したいプロパティがいくつかあります。内部コントロールに書き込みます。
これを行うのに問題があります。私が間違っていることがありますか、それとも私が行っていることは賢明ではありませんか?
敬具 クリスチャン・アンデルセン
これを使用して公開してみることができます
public static IEnumerable<T> FindVisualChildren<T>(this DependencyObject depObj) where T : DependencyObject
{
if (depObj == null) yield break;
for (var i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
{
var child = VisualTreeHelper.GetChild(depObj, i);
var children = child as T;
if (children != null)
{
yield return children;
}
foreach (T childOfChild in FindVisualChildren<T>(child))
{
yield return childOfChild;
}
}
}
使い方
var uc = (TabItem)sender;
foreach (TextBlock textBlock in uc.FindVisualChildren<TextBlock>())
{
textBlock.Foreground = Brushes.WhiteSmoke;
}