2010-10-22 30 views
0

我有一個Silverlight 4應用程序。 MainPage是應用程序的RootVisual,它有很多控件 - 其中一個是名爲VideoPlayerView的用戶控件。我想要的是,當用戶單擊此控件上的全屏圖標時,此控件會「彈出」頁面並全屏顯示(即,此頁面上的所有其他控件都必須隱藏,並且只有VideoPlayerView控件會顯示全屏)。Silverlight - 將嵌入式自定義控件移出頁面並使其全屏

的具有的MainPage設置行和列的定義如下:

<Grid.ColumnDefinitions> 
     <ColumnDefinition Width="143"/> 
     <ColumnDefinition Width="4"/> 
     <ColumnDefinition Width="81"/> 
     <ColumnDefinition Width="27"/> 
     <ColumnDefinition Width="624"/> 
     <ColumnDefinition Width="125"/> 
     <ColumnDefinition Width="10"/> 
     <ColumnDefinition Width="10"/> 
    </Grid.ColumnDefinitions> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="15"/> 
     <RowDefinition Height="40"/> 
     <RowDefinition Height="10"/> 
     <RowDefinition Height="21"/> 
     <RowDefinition Height="10"/> 
     <RowDefinition Height="199"/> 
     <RowDefinition Height="220"/> 
     <RowDefinition Height="21"/> 
     <RowDefinition Height="160"/> 
     <RowDefinition Height="26"/> 
     <RowDefinition Height="45"/> 
    </Grid.RowDefinitions> 

當VideoPlayerView採用全屏幕,我認爲它需要去0,0位置,這些定義應設置爲汽車在那一點?

我嘗試從其當前父項中移除VideoPlayerView控件,清除MainPage.LayoutRoot的子集合並將該視圖集視圖添加到MainPage的Layoutroot - 但由於某些原因,VideoPlayerView僅在屏幕的前四分之一中顯示。

如果有人知道這樣做的方式,請讓我知道!

回答

0

的問題是在我們的XAML - 有一個剪輯屬性集在全屏模式下切斷視頻的視頻播放器視圖中。以全屏模式刪除此屬性解決了該問題。

0

可能是視頻播放器只填充屏幕四分之一的原因是因爲它默認添加到網格的第一行和第一列。如果你想要跨越多行和多列,你必須使用Grid.ColumnSpan = 8和Grid.RowSpan = 11,這樣才能填滿整個屏幕。

另外,從子集合中刪除所有控件並非絕對必要;將他們的能見度轉化爲摺疊應該就足夠了。

你可以使用可視狀態處理所有這些變化,然後你可以這樣做:

VisualStateManager.GoToState(this, "Normal", true); 

和:

VisualStateManager.GoToState(this, "Fullscreen", true); 
相關問題