Размещение информации о строке состояния во всплывающем окне MessageBox в WPF - PullRequest
0 голосов
/ 20 августа 2011

Так что я совершенно новичок в 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 голосов
/ 20 августа 2011

Вы могли бы начать с чего-то вроде этого (непроверенного и неустановленного):

<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" и будет размещено там, где строка состояния находится в текущем приложении. Вы можете начать с исправления этих проблем, а затем попытаться добавить некоторые стили к содержимому всплывающего окна. Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...