[英]How to load an XML file from a file in the solution, build with Embedded Resource? Project > Cross Platform > Xamarin.Forms
[英]How do I create an object of an Android Project PageRenderer class in my main solution in a cross platform xamarin project?
我的起始頁上有一張背景圖片,當應用程序運行時,該圖片會被拉伸以適應屏幕。 我試圖避免這種拉伸,因為它看起來很糟糕。
我在 android 項目中創建了一個頁面渲染器 class:
[assembly: ExportRenderer(typeof(Page), typeof(CustomPageRenderer))]
namespace ChoiceBasedStoryGame.Droid
{
public class CustomPageRenderer : PageRenderer
{
public CustomPageRenderer(Context context) : base(context)
{
}
protected override void OnElementChanged(ElementChangedEventArgs<Page> e)
{
base.OnElementChanged(e);
var activity = this.Context as Activity;
activity.Window.SetBackgroundDrawable(Resources.GetDrawable(Resource.Drawable.cyberpunk_hacker));
var imageView = activity.FindViewById<ImageView>(Android.Resource.Id.Content);
imageView.SetScaleType(ImageView.ScaleType.CenterCrop);
}
}
}
我想在我的起始頁中引用它:
namespace ChoiceBasedStoryGame
{
public class StartPage : ContentPage
{
public StartPage()
{
var renderer = new CustomPageRenderer(this.Context);
this.BackgroundImageSource = "cyberpunk_hacker.png";
this.Renderer = new CustomPageRenderer(this.Context);
我收到命名空間“CustomPageRenderer”不存在的錯誤。
但這會導致與“Droid”類似的錯誤。 我驗證了 android 屬性中的引用是正確的。
我試過在頂部添加“使用”:
using ChoiceBasedStoryGame.Droid;
有沒有更簡單的方法可以將背景圖像的比例設置為不拉伸?
謝謝你。
首先,如果您只想對 StartPage 使用自定義渲染器,可以將[assembly: ExportRenderer(typeof(Page), typeof(CustomPageRenderer))]
更改為[assembly: ExportRenderer(typeof(StartPage), typeof(CustomPageRenderer))]
。
您可以查看有關自定義內容頁面的官方文檔以獲取更多詳細信息。
此外,關於如何適當設置頁面的背景圖片,還有很多其他的方法。 比如你可以像我以前的回答那樣使用網格中的圖像控件。 您還可以參考這個案例,關於在 Xamarin.Forms 中更改背景圖片的縱橫比,同時保持內容居中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.