我要去嘗試修復提示@JimmyEngtröm。不過,我也可以通過等待直到加載發生,來解決這個問題。
<controls:Pivot x:Name="pivotCtrl" Title="{Binding ApplicationTitle}"
Loaded="OnPivotControlLoaded" Opacity="1">
,並在頁面的代碼背後:
private void OnPivotControlLoaded(object sender, RoutedEventArgs e)
{
// Restore the Pivot control's SelectedIndex
if (State.ContainsKey(SelectedPivotIndexKey))
{
pivotCtrl.SelectedIndex = State.Get<int>(SelectedPivotIndexKey);
}
myStoryboard.Begin();
}
現在,爲什麼故事板?好吧,當你等到Load時,你會看到第一個關鍵點,這是跛腳。所以故事板快速淡入......只是足以掩飾修補程序。我嘗試設置可見性,但這會導致應用程序崩潰。另請注意,出於設計目的,我在透視控件的XAML中將Opacity設置爲1。這裏的故事板:
<Storyboard x:Name="myStoryboard">
<DoubleAnimation
Storyboard.TargetName="pivotCtrl"
Storyboard.TargetProperty="Opacity"
From="0.0" To="1.0" Duration="0:0:01"
/>
</Storyboard>
下面是輔助函數(放置在單獨的類文件,並引用,例如使用MyApp.Helpers和類文件需要引用System.Collections中。通用)
public static T Get<T>(this IDictionary<string, object> dictionary, string key)
{
return (T)dictionary[key];
}
public static void AddOrReplace<T>(this IDictionary<string, T> dictionary, string key, T item)
{
if (dictionary.ContainsKey(key))
dictionary.Remove(key);
dictionary.Add(key, item);
}
再次,它不是最大的修復,但它工作正常的和淡入實際上是東西我可能會使用在其他地方。
private void RefreshButton_Click(object sender,EventArgs e) { DataContext = null; App.ViewModel.ChannelInfo = new ObservableCollection(); App.ViewModel.LoadData(); DataContext = App.ViewModel; } –
johnX99
2010-12-20 14:25:20
@ johnX99請更新您的問題並提供更多信息。嘗試幷包含一個演示問題的完整示例。你上面的評論只是提出了更多的問題:你的視圖模型的結構是什麼?它如何綁定到UI? 「ChannelInfoClass」的結構是什麼?你在'LoadData()'中做什麼?等等 – 2010-12-20 14:58:33