stevenjin 2023-02-04 16:18 采纳率: 98.3%
浏览 35
已结题

主窗体中不能通过事件设置Page控件的原因

MainWindows中。通过点击按钮,给Main窗体中的ContentControl赋不同的Page,实现页面切换。
但设置page页面的控件,如可见性时没有见效
设置方法:
在主窗体中,通过委托,执行Page中的方法,进行可见性设置

请求可行方案,及不可设置的原因?


1.Page
 <Grid x:Name="grid" Background="Red" >
        <TextBlock Text="ok" FontSize="200" x:Name="tb"/>
    </Grid>

 
        public void HiddingSettings(string hidden)
        {
            if (hidden=="1")
            {
                tb.Text = "ok?";
                //tb.Visibility = Visibility.Hidden;
            }
       }

2.MainWindow    
 /// 
    /// MainWindow.xaml 的交互逻辑
    /// 
    public partial class MainWindow : Window
    {
        Action<string> HinddenSettings;// 隐藏或显示设置等相关功能
        Frame page1 = new Frame() { Content = new Page1() };

        public MainWindow()
        {
            InitializeComponent();

            contentShow.Content = page1;
            HinddenSettings += new Action<string>(new Page1().HiddingSettings);
        }

        private void click_Click(object sender, RoutedEventArgs e)
        {
            HinddenSettings("1");
        }
    }

<Grid>
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition/>
        </Grid.RowDefinitions>


        <ContentControl Grid.Row="0" x:Name="contentShow"  VerticalAlignment="Center"/>
        <Button Grid.Row="1" Height="20" Width="200" x:Name="click" Content="click me" Click="click_Click"/>
    </Grid>
  • 写回答

1条回答 默认 最新

  • 小渔民阿发 2023-02-04 16:26
    关注

    你展示的page1和委托调用的不是同一个
    31行又new了一个

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 2月12日
  • 已采纳回答 2月4日
  • 创建了问题 2月4日

悬赏问题

  • ¥50 hyper默认的default switch
  • ¥15 网站打不开,提示502 Bad Gateway
  • ¥20 基于MATLAB的绝热压缩空气储能系统代码咨询
  • ¥15 R语言建立随机森林模型出现的问题
  • ¥20 unity内置语言切换的按钮设置
  • ¥15 中级微观经济学,生产可能性边界问题
  • ¥15 TCP传输时不同网卡传输用时差异过大
  • ¥15 请各位看看我写的属于什么算法,或者有更正确的写法?
  • ¥15 html5 qrcode 扫描器
  • ¥15 爬取网页信息并保存需要完整代码