我有以下窗口,其中包含我的用戶控件在上方區域(取決於進程的狀態)和一個按鈕。點擊按鈕後,一個用戶控件將被隱藏,另一個將被顯示。通過從第一個控件到第二個控件的更改,窗口被凍結,直到第二個控件完成任務。WPF:在用戶交互後顯示和隱藏用戶控件
第二個控件包含一個記錄步驟的ListView。我想在這個過程中直接看到這個日誌。但是,只有完成時我才能看到它。在第二個控件開始工作之前,如何刷新窗口?
碼字行像
Me.UpdateLayout()
不工作...
整個程序shalls與三個屏幕(1.設置2.更新過程中記錄的更新工具, 3.完成對話框)。因此,我需要在完成後直接瞭解日誌記錄的單個步驟。
我現在的XAML如下:
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:SiS.Controls="clr-namespace:SiSConverter"
Title="Konvertierung von SiS-Anwendungen"
Height="400" Width="525">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="50px" />
</Grid.RowDefinitions>
<SiS.Controls:Settings x:Name="ucSettings" />
<SiS.Controls:Upgrade x:Name="ucUpgrade" />
<SiS.Controls:Finish x:Name="ucFinish" />
<Button Name="btnContinue" Width="100px" Height="30px" Grid.Row="1" Margin="0,0,10,0" HorizontalAlignment="Right" />
</Grid>
</Window>
背後相應的代碼:
Class MainWindow
Private _Step As Integer = -1
Private Property [Step] As Integer
Get
Return _Step
End Get
Set(value As Integer)
_Step = value
Me.ucSettings.Visibility = Visibility.Collapsed
Me.ucUpgrade.Visibility = Visibility.Collapsed
Me.ucFinish.Visibility = Visibility.Collapsed
Me.btnContinue.Content = "Weiter"
Select Case _Step
Case 0
Me.ucSettings.Visibility = Visibility.Visible
Case 1
Me.ucUpgrade.Visibility = Visibility.Visible
Case 2
Me.ucFinish.Visibility = Visibility.Visible
Me.btnContinue.Content = "Beenden"
Case Else
End Select
Me.UpdateLayout() 'doesn't work
End Set
End Property
Private Sub MainWindow_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
Me.Step = 0
For Each Item As System.IO.FileInfo In New System.IO.DirectoryInfo("Converters").GetFiles()
Dim oConverter As ISiSConverter = System.Reflection.Assembly.LoadFrom(Item.FullName).CreateInstance("Upgrade.Main", True)
Me.ucSettings.Converters.Add(oConverter)
Next
End Sub
Private Sub btnContinue_Click(sender As Object, e As RoutedEventArgs) Handles btnContinue.Click
Select Case Me.Step
Case 0 'Einstellungen
Me.Step += 1
Me.btnContinue.IsEnabled = False
Me.ucSettings.Converters.FindAll(Function(item) item.DoUpgrade).ForEach(Sub(item) item.Upgrade())
Me.btnContinue.IsEnabled = True
Case 1 'Upgrade
Me.Step += 1
Case 2 'Abschluss
Me.Close()
Case Else
End Select
End Sub
End Class
感謝任何迴應。
編輯: 該方案包括三個步驟。在第一步中將配置做什麼。
:點擊右下角按鈕將被做了每個標記的項目(綠色按鈕,紅色將被忽略),由第二個步驟的列表中顯示。
如果步驟2完成完成屏幕被示出,並且程序可以關閉(該屏幕仍設計)。
在WinForms和ASP.NET我顯示和隱藏用戶控件也是在我這樣做時間的方式(也可能這不是一個很好的實施前)。如果在WPF中有更好的可能性,那將會很好。這裏
我不知道你在做什麼,但你的代碼是一團糟(沒有冒犯)。您不得在WPF代碼中操作UI元素的屬性。發佈你需要的截圖,我可以告訴你在WPF中實現它的正確方法。 –
如果我回到辦公室,我會明天發佈截圖。 – mburm
添加屏幕截圖。 – mburm