将状态栏信息放入WPF中的MessageBox弹出窗口

时间:2011-08-19 22:31:54

标签: c# wpf xaml

所以我对WPF和C#完全不熟悉,并且我们的任务是将我们在MainWindow.xaml的状态栏中获取的现有信息放在一个弹出窗口中,就像MessageBox一样。我不太确定如何做到这一点,因为我可以看到生成文本的一些代码,以及代码中进度条的值,但我不知道这些单独的方法如何绑定到.xaml文件。这是当前xaml中的内容。任何指导将不胜感激。感谢。

<StatusBar Width="Auto" MaxHeight="50" Grid.Row="2" HorizontalAlignment="Stretch">
    <StatusBar.ItemsPanel>
        <ItemsPanelTemplate>
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="*"/>
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition MinWidth="100" Width="Auto"/>
                    <ColumnDefinition MinWidth="100" Width="Auto"/>
                    <ColumnDefinition MinWidth="300"/>
                </Grid.ColumnDefinitions>
            </Grid>
        </ItemsPanelTemplate>
    </StatusBar.ItemsPanel>
    <StatusBarItem Grid.Column="0">
        <TextBlock Name="tbxProgressText" Text="{Binding Path=ProgressText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
    </StatusBarItem>
    <StatusBarItem Grid.Column="1">
        <TextBlock Name="tbxProgressText2" Text="{Binding Path=ProgressText2, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
    </StatusBarItem>
    <StatusBarItem Grid.Column="2">
        <ProgressBar Width="300" Height="18" Name="ProgressBar" 
                     Value="{Binding Path=PbarValue, Mode=OneWay}" 
                     Minimum="{Binding Min}" Maximum="{Binding Maximum}"/>
    </StatusBarItem>
</StatusBar>

1 个答案:

答案 0 :(得分:0)

你可以从这样的事情开始(未经测试和没有风格):

<Popup Width="Auto" MaxHeight="50" Grid.Row="2" HorizontalAlignment="Stretch" IsOpen="true">
    <StackPanel>
        <TextBlock Name="tbxProgressText" Text="{Binding Path=ProgressText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
        <TextBlock Name="tbxProgressText2" Text="{Binding Path=ProgressText2, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
        <ProgressBar Width="300" Height="18" Name="ProgressBar" 
                 Value="{Binding Path=PbarValue, Mode=OneWay}" 
                 Minimum="{Binding Min}" Maximum="{Binding Maximum}"/>
    </StackPanel>
</Popup>

由于属性IsOpen =“true”,此弹出窗口将始终打开,并且它将被放置在状态栏放置在当前应用程序中的位置。您可以从修复这些内容开始,然后尝试在弹出窗口的内容中添加一些样式。 希望它有所帮助!