我正在App.xaml.cs中创建一个Global 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给出的代码对我来说不起作用,所以我决定这样做就像WP 8一样(实际上是一个改编,因为在我的情况下) ,我正在使用C#而不是XAML).
所以,我面临的问题是appbar占用了照片的大小,我没有找到任何属性来设置ImageBrush的高度.
我想设置appbar的布局并在项目的所有页面上共享它(避免在每个页面中复制和粘贴代码)所以任何示例或帮助都会非常感激:).
提前致谢!
最佳答案 正如你在评论中所说的那样:“……但我想要实现的第一个目标是使用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分辨率.
检查此屏幕拍摄.