簡體   English   中英

PRISM WPF 和 MaterialDesignInXaml 過渡器

[英]PRISM WPF and MaterialDesignInXaml transitioner

我正在嘗試將MaterialDesignInXaml 中Transitioner與 PRISM 7 WPF 應用程序一起用作區域來獲取導航動畫。 在視圖導航成功但只有第一個視圖動畫的意義上,這兩個“工作”在一起。 在四處探索之后,我使用從PRISM復制的新 RegionBehavior 創建了自己的 RegionAdapter 以進行播放。

我有一個想法,也許同步事件處理程序在過渡器有機會制作啟用其動畫的容器之前觸發。 我注意到的可疑行為是,當這一行執行時,它會清除 Transitioner 的 SelectedItem 並且動畫不會觸發。 (這是上周五結束的時候所以很抱歉周一早上有點模糊。)

所以我添加了一個真正復雜的機制,允許過渡器“趕上”( await Task.Delay(1)相當於這一行,動畫開始工作。 現在,當視圖被停用時,它不會清除 SelectedItem。

我的問題是為什么以及如何更優雅地做到這一點? 我對自定義 WPF UI 控件沒有很多經驗。 我真的不喜歡我所擁有的基本上是一個分叉的 SelectorRegionAdapter ,競爭條件正在等待發生。

我最終深入研究了 MaterialDesignInXaml 代碼庫,發現除非加載了視圖,否則 Transitioner 不會觸發動畫。 所以我最終用FrameworkElement.Loaded事件的事件處理程序替換了我的Task.Delay(1)

所以我最終使用了庫的 SelectorRegionAdapter 的 90%,除了它選擇我監聽 Loaded 的新活動視圖,然后一旦發生我選擇新視圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM