如何以编程方式设置 AppBar 高度?
How to set AppBar Height programmatically?
我正在 App.xaml.cs 中以这种方式创建全局 AppBar:
public static AppBar _globalAppBar = new AppBar();
public App()
{
//Code
SetUpBar();
}
public void SetUpBar()
{
//SIZE
_globalAppBar.Height = 250;
//BACKGROUND
ImageBrush bck = new ImageBrush();
bck.ImageBrush = new BitmapImage(new Uri("Path"));
_globalAppBar.Background = bck;
}
我这样实现是因为我希望这个页面出现在应用程序的每个页面和 Microsoft, didn't work for me, so I decided to do it as for WP 8 给出的代码中(实际上是一种改编,因为在我的例子中,我使用的是 C# 而不是XAML).
所以,我面临的问题是应用栏占用了照片的大小,但我没有找到任何 属性 来设置 ImageBrush 的高度。
我想设置应用栏的布局并在项目的所有页面上共享它(避免在每个页面中复制和粘贴代码)所以任何示例或帮助将不胜感激:)。
提前致谢!
正如您在评论中所说:"...但我想要实现的第一个目标是使用 imahe 设置背景并调整它的大小。"
所以,试试这个代码:这是示例代码:
XAML :
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Slider x:Name="slider"
VerticalAlignment="Center"
Maximum="250"
Minimum="50"
Value="100"
ValueChanged="slider_ValueChanged"/>
</Grid>
C# :
public static AppBar _globalAppBar = new AppBar();
public MainPage()
{
this.InitializeComponent();
SetUpBar();
}
public void SetUpBar()
{
_globalAppBar = new AppBar();
//SIZE
_globalAppBar.Height = 250;
_globalAppBar.Name = "appBar";
//BACKGROUND
_globalAppBar.Background = new SolidColorBrush(Colors.PaleVioletRed);
BitmapImage bmI = new BitmapImage();
bmI= new BitmapImage(new Uri("ms-appx:///Assets/1.jpg", UriKind.RelativeOrAbsolute));
var imageBrush = new ImageBrush();
imageBrush.ImageSource = bmI;
_globalAppBar.Background = imageBrush;
AppBarButton abbtn = new AppBarButton();
abbtn.Label = "Hello";
_globalAppBar.Content = abbtn;
this.TopAppBar = _globalAppBar;
}
private void slider_ValueChanged(object sender, RangeBaseValueChangedEventArgs e)
{
Slider sl = (Slider)sender;
if (sl.Value!=0)
{
_globalAppBar.Height = sl.Value;
}
}
我已将此图片设置为 1600X1000 分辨率。
检查此屏幕截图。
我正在 App.xaml.cs 中以这种方式创建全局 AppBar:
public static AppBar _globalAppBar = new AppBar();
public App()
{
//Code
SetUpBar();
}
public void SetUpBar()
{
//SIZE
_globalAppBar.Height = 250;
//BACKGROUND
ImageBrush bck = new ImageBrush();
bck.ImageBrush = new BitmapImage(new Uri("Path"));
_globalAppBar.Background = bck;
}
我这样实现是因为我希望这个页面出现在应用程序的每个页面和 Microsoft, didn't work for me, so I decided to do it as for WP 8 给出的代码中(实际上是一种改编,因为在我的例子中,我使用的是 C# 而不是XAML).
所以,我面临的问题是应用栏占用了照片的大小,但我没有找到任何 属性 来设置 ImageBrush 的高度。
我想设置应用栏的布局并在项目的所有页面上共享它(避免在每个页面中复制和粘贴代码)所以任何示例或帮助将不胜感激:)。 提前致谢!
正如您在评论中所说:"...但我想要实现的第一个目标是使用 imahe 设置背景并调整它的大小。"
所以,试试这个代码:这是示例代码:
XAML :
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Slider x:Name="slider"
VerticalAlignment="Center"
Maximum="250"
Minimum="50"
Value="100"
ValueChanged="slider_ValueChanged"/>
</Grid>
C# :
public static AppBar _globalAppBar = new AppBar();
public MainPage()
{
this.InitializeComponent();
SetUpBar();
}
public void SetUpBar()
{
_globalAppBar = new AppBar();
//SIZE
_globalAppBar.Height = 250;
_globalAppBar.Name = "appBar";
//BACKGROUND
_globalAppBar.Background = new SolidColorBrush(Colors.PaleVioletRed);
BitmapImage bmI = new BitmapImage();
bmI= new BitmapImage(new Uri("ms-appx:///Assets/1.jpg", UriKind.RelativeOrAbsolute));
var imageBrush = new ImageBrush();
imageBrush.ImageSource = bmI;
_globalAppBar.Background = imageBrush;
AppBarButton abbtn = new AppBarButton();
abbtn.Label = "Hello";
_globalAppBar.Content = abbtn;
this.TopAppBar = _globalAppBar;
}
private void slider_ValueChanged(object sender, RangeBaseValueChangedEventArgs e)
{
Slider sl = (Slider)sender;
if (sl.Value!=0)
{
_globalAppBar.Height = sl.Value;
}
}
我已将此图片设置为 1600X1000 分辨率。
检查此屏幕截图。