WPF在Windows中获取对象

时间:2016-01-18 02:17:56

标签: c# wpf

问题。我不知道如何从我的方法访问传递的Window对象中的对象。

void MyMethod(Window myWindow){
     myWindow. <--- "I have an Progress bar inside this object that I believe has been passed. But don't know how to access it".




}

我也可以尝试使用System.Windows中当前的Application类库,但问题仍然是一样的,我只是不知道如何引用窗口内的对象。

void MyMethod(){
     ProgressBar myprogressbarInsidetheApp = Application.Current.MainWindow <----- I am lost. Please help.

}

2 个答案:

答案 0 :(得分:1)

我会避免传递对Window的引用,但是如果你有一些强迫你的约束,那么你需要将它强制转换为特定的 {{1在你可以访问它上面的任何元素之前。

如果这是你的窗口,名为“MainWindow”:

Window

你必须像这样投射:

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <ProgressBar Name="MyProgressBar" Value="30" />
    </Grid>
</Window>

答案 1 :(得分:0)

你真的不应该这样做,但如果你绝对坚持......使用WPF Tree Visualizer来确定你试图访问的子元素的名称,然后使用java.lang.Throwable来获取参考对象。如果元素没有名称,那么您需要navigate the entire visual tree查找所需类型的元素。