表題の通りですが、入れ子になったユーザーコントロールにある子ユーザーコントロール(以下PageTop.xaml)の"TestButton"から、親に当たるユーザーコントロールのAllViewWindow.xamlのStackpanelPageTopを、コード側から操作するにはどうすればいいでしょうか。
以下のようにFindNameで探してもNullになります。
C#
1StackPanel stackPanelPageTop = (StackPanel)FindName("StackpanelPageTop"); //Nullになる
<MainWIndow.xaml>
xaml
1<Window x:Class="AppWPF.MainWindow" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 5 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 6 xmlns:page="clr-namespace:AppWPF.UserControlObjects.Page" 7 8 <Grid> 9 <page:AllViewWindow/> 10 </Grid> 11</Window> 12
<AllViewWindow.xaml>
xaml
1<UserControl x:Class="AppWPF.UserControlObjects.Page.AllViewWindow" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 5 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 6 xmlns:page="clr-namespace:AppWPF.UserControlObjects.Page" 7 mc:Ignorable="d" > 8 <Grid> 9 <StackPanel x:Name="StackpanelPageTop" Margin="0" Visibility="Visible" Opacity="1"> 10 <page:PageTop VerticalAlignment="Stretch"/> 11 </StackPanel> 12 </Grid> 13</UserControl>
<PageTop.xaml>
xaml
1<UserControl x:Class="AppWPF.UserControlObjects.Page.PageTop" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 5 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 6 mc:Ignorable="d" 7 Stylus.IsPressAndHoldEnabled="False" HorizontalAlignment="Center" VerticalAlignment="Center" Width="1507"> 8 9 <StackPanel x:Name="CanvasTop" Margin="0,0,0,0" VerticalAlignment="Center" HorizontalAlignment="Center"> 10 <Button x:Name="TestButton" Width="100" Height="50" Click="TestButton_Click" /> 11 12 </StackPanel> 13</UserControl> 14
C#
1using System.Windows.Controls; 2using AppWPF.UserControlObjects.Motion; 3 4namespace AppWPF.UserControlObjects.Page 5{ 6 /// <summary> 7 /// Page_Top.xaml の相互作用ロジック 8 /// </summary> 9 public partial class PageTop : UserControl 10 { 11 public PageTop() 12 { 13 InitializeComponent(); 14 } 15 16 17 private void TestButton_Click(object sender, System.Windows.RoutedEventArgs e) 18 { 19 //ここでAliiViewWindowのStackpanelPageTopを指定したい 20 //StackpanelPageTop.Visibility = Visibility.Hidden;など 21 } 22 } 23} 24
回答1件
あなたの回答
tips
プレビュー