私はWPFを初めて使用するので、質問のタイトルが正しいかどうか、または意味があるかどうかわかりません。関連性が高くなる場合は編集してください。アプリケーションで Kinect.Toolbox MouseControl を使用しています。磁気コントロールを使用するには問題があります。以下を追加することで、XAML でそれらを定義できることを知っています。
<Page ...
xmlns:local ="clr-namespace:Kinect.Toolbox;assembly=Kinect.Toolbox">
...
<Button local:MagneticPropertyHolder.IsMagnetic="True" ... />
....
しかし、私はコードでそれを行う必要があります。コードで磁気コントロールを設定する方法はありますか? 次のように、ページ内のすべてのコントロールを取得できます。
public static IEnumerable<T> FindVisualChildren<T>(DependencyObject depObj) where T : DependencyObject
{
if (depObj != null)
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(depObj, i);
if (child != null && child is T)
{
yield return (T)child;
}
foreach (T childOfChild in FindVisualChildren<T>(child))
{
yield return childOfChild;
}
}
}
}
foreach (Button tb in FindVisualChildren<Button>(this))
{
//Set the buttons to be magnetic
}
ただし、それらをプログラムで設定する方法がわかりません。