wpf通过Url的方式启动,如何给wpf的组件赋值

我在MainWindow里加了一个Textbox,现在通过Url的方式启动这个wpf,代码如下Applicationapp=newApplication();app.St... 我在MainWindow里加了一个Textbox,现在通过Url的方式启动这个wpf,代码如下

Application app = new Application();
app.StartupUri = new Uri("MainWindow.xaml", UriKind.Relative);
app.Run();
想求教大神:怎么给Textbox.Text赋值
展开
 我来答
阳光的雷咩咩
2014-11-08 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7788万
展开全部

试了一下,两种方法。前提都是你先为MainWindow例的TextBox取个名称,比如我的

    <Grid>
        <TextBox Name="txt1" MinWidth="100" HorizontalAlignment="Center" VerticalAlignment="Center"/>
    </Grid>

最简的方法,在MainWindow的Loaded里可以获取

Loaded="Window_Loaded"
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            this.txt1.Text = "Loaded";
        }

假如你想在App.xaml的后台代码访问,用如下代码

    public partial class App : Application
    {
        protected override void OnActivated(EventArgs e)
        {
            base.OnActivated(e);
            MainWindow mw = Application.Current.MainWindow as MainWindow;
            mw.txt1.Text = "app";
        }
    }
更多追问追答
追问
本人初学,你说的第一个方法不知道怎么用。Loaded="Window_Loaded"要加在哪里?是在 public partial class MainWindow : Window里添加 private void Window_Loaded么?加上去没有显示。

第二个方法也出不来结果,Textbox的内容还是没有。
是什么问题呢?求解
追答

我把代码传到附件了,你再研究下。

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jqkalytrue
2014-11-07 · TA获得超过835个赞
知道小有建树答主
回答量:1509
采纳率:57%
帮助的人:378万
展开全部
wpf的精神是数据驱动界面变换,不建议直接修改界面,你可以使用联动绑定,在内存中弄个变量,然后绑定到控件,如果想让控件变化,直接修改变量,控件自动变,这是wpf的思想,不能用老的思维模式,不然就没新意,只是换一个工具而已

不过老实说,全用数据驱动,导致wpf开发大点的程序效率很差,莫名其妙的问题非常多,并且速度很慢,貌似现在微软自己也认识到问题了,不再深入搞这个了,估计是觉得得不偿失
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gytangyao
2014-11-07 · 超过31用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:78万
展开全部

 /// <summary>

    /// App.xaml 的交互逻辑

    /// </summary>

    public partial class App : Application

    {

        public App()

        {

         Window window=  App.Current.MainWindow;

         TextBox tb=  window.FindName("Textbox") as TextBox;

         tb.Text = "hello boy!";

        }

    }


追问
呃……还是不行
到这句就报错 TextBox tb= window.FindName("textBox1") as TextBox;
能不能直接在这个地方加些代码来实现?
Application app = new Application();
app.StartupUri = new Uri("MainWindow.xaml", UriKind.Relative);
app.Run();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Dara的世界
2014-11-08 · TA获得超过143个赞
知道小有建树答主
回答量:395
采纳率:100%
帮助的人:298万
展开全部
直接在App.cs里重写OnStartUp,在里面直接
MainWindow window=new MainWindow();
window.TextBox1=“aaaaaaaaaaa”;
window.Show();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式