我在LayoutAware頁面上有一個彈出控件。綁定到XAML中的Window.Current.Bounds.Width
我真正想要的是讓彈出窗口填滿屏幕。
我認爲解決方案是使用Window.Current.Bounds.Height/Width在彈出控件的網格內設置相應的屬性。
我不想使用文件後面的代碼來設置這些屬性。我希望能夠綁定到XAML中的Window.Current.Bounds.Height。
我可以這樣做嗎?
有沒有更好的方法來讓彈出窗口填滿屏幕?
我在LayoutAware頁面上有一個彈出控件。綁定到XAML中的Window.Current.Bounds.Width
我真正想要的是讓彈出窗口填滿屏幕。
我認爲解決方案是使用Window.Current.Bounds.Height/Width在彈出控件的網格內設置相應的屬性。
我不想使用文件後面的代碼來設置這些屬性。我希望能夠綁定到XAML中的Window.Current.Bounds.Height。
我可以這樣做嗎?
有沒有更好的方法來讓彈出窗口填滿屏幕?
你可以通過編寫高度和寬度的轉換器來完成。
public class WidthConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
return Window.Current.Bounds.Width;
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
public class HeightConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
return Window.Current.Bounds.Height;
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
在頁面資源中添加該 -
<common:WidthConverter x:Key="wc" />
<common:HeightConverter x:Key="hc" />
用它們爲你彈出 -
<Popup x:Name="myPopup" >
<Grid Background="#FFE5E5E5" Height="{Binding Converter={StaticResource hc}}" Width="{Binding Converter={StaticResource wc}}" />
</Popup>
您可以使用轉換器(見打字員) 或使用靜態類。
在你的App.xaml:
<datamodel:Foo x:Name="FooClass" />
xmlns:datamodel="using:MyProject.Foo.DataModel"
而在你的XAML:
Source="{Binding Source={StaticResource FooClass}, Path=Width}"
其中寬度是在你的類屬性,它返回Window.Current.Bounds.Width。
樣品:public double Width{get{return Window.Current.Bounds.Width;}}
問候。
我最終使用這個解決方案。 @Typist謝謝! – Robert
這似乎沒有響應頁面大小的變化 - 停靠在左邊或右邊,或事件2/3大小。 – Nathan