所以我对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>
答案 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”,此弹出窗口将始终打开,并且它将被放置在状态栏放置在当前应用程序中的位置。您可以从修复这些内容开始,然后尝试在弹出窗口的内容中添加一些样式。 希望它有所帮助!