Windows PhoneでTabbedPage
で使用されているがWindowsデスクトップでは使用できないPivot
コントロールを模倣したXamarin Page
クラスを作成したいと思います。だから私はそれをホストしているいくつかの子供Page
、そのうちの1つだけが表示されるだけでなく、ユーザーが子供の間で切り替えることができます独自のコントロールです。私はこれについてどうやって行くのですか?他のページをホストできるXamarin Pageを作成するにはどうすればよいですか?
0
A
答えて
0
あなたは正確にCarouselView
を探しています。これは、FlipView
をWinRTとUWPプラットフォームで使用します。
さらに詳しい情報はXamarin blogとXamarinhelp.comです。彼らはまた、プレリリースnugetパッケージを持っています。
0
私はあなた自身でそれを書かなければならないと思います。 CarouselViewを使用して、それをGridまたはAbsoluteLayoutまたはRelativeLayoutに追加します(つまり、バックグラウンドに置くことで、その上にタイトルのカルーセルを追加することができますし、そうしたくない場合もあります。垂直スタックレイアウトを使用します)。また、ナビゲーション用のカスタムコントロールを追加し、ページタイトルカルーセルと実際のページカルーセルとの間で変更を同期させる必要があります。
0
ビューでホストページの方法についてthis blog postが見つかりました。その上で、私は次のビュークラスを作った:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace SGB
{
public class PageView : View
{
public PageView()
{
}
public static readonly BindableProperty ContentProperty = BindableProperty.Create<PageView,Page> (s => s.Content, null);
public Page Content {
get
{
return (Page)GetValue (ContentProperty);
}
set
{
SetValue (ContentProperty, value);
LayoutContent();
}
}
protected override void OnSizeAllocated(double width, double height)
{
base.OnSizeAllocated(width, height);
LayoutContent();
}
private void LayoutContent()
{
if (Content != null)
{
Content.Layout(new Rectangle(0, 0, Width, Height));
}
}
}
}
と、このレンダラークラス:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Windows.UI;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Xamarin.Forms;
using Xamarin.Forms.Platform.WinRT;
using Page = Xamarin.Forms.Page;
using SGB;
[assembly: ExportRenderer(typeof(PageView), typeof(SGB.Windows.PageViewRenderer))]
namespace SGB.Windows
{
public class PageViewRenderer : ViewRenderer<PageView, FrameworkElement>
{
private Page currentPage;
private FrameworkElement FrameworkElement;
public PageViewRenderer()
: base()
{
}
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender, e);
if ((e.PropertyName == "Content") || (e.PropertyName == "Renderer"))
{
SetPage(((PageView)Element).Content);
}
}
private void SetPage(Page page)
{
if (page == currentPage)
{
return;
}
if (currentPage != null)
{
((IPageController)page).SendDisappearing();
currentPage.Parent = null;
}
currentPage = page;
if (page != null)
{
var renderer = page.GetOrCreateRenderer();
FrameworkElement = renderer.ContainerElement;
SetNativeControl(FrameworkElement);
page.Parent = FindPage();
((IPageController)page).SendAppearing();
}
}
private Page FindPage()
{
for (Element element = Element; element != null; element = element.Parent)
{
if (element is Page)
{
return (Page)element;
}
}
return null;
}
}
}
は今、私はPageView
を含むContentPage
を作成することができることを持っている、と私は私が欲しいものを持っています。
関連する問題
- 1. 404ページを作成するにはどうすればよいですか?
- 2. カスタムWordPressページを作成するにはどうすればよいですか?
- 3. 他のポップアップを作成するポップアップを作成するにはどうすればよいですか?
- 4. Vagrantがホスト型ネットワークを作成しないようにするにはどうすればよいですか?
- 5. C#Xamarin Androidでfacebookメッセンジャーのようなフローティングボタンを作成するにはどうすればいいですか?
- 6. スピナーAndroidのようなドロップダウンリストをXamarinフォームで作成するにはどうすればいいですか?
- 7. 異なるページにナビゲートできるデスクトップアプリケーションを作成するにはどうすればよいですか?
- 8. Xamarin StudioでAndroidソリューションを作成するオプションを取得するにはどうすればよいですか?
- 9. 他のwcfサービスをホストできるwcfサービスを実装するにはどうすればいいですか?
- 10. 他のコントロールをドロップできるUserControlを作成するにはどうすればいいですか?
- 11. 他のコンテナで使用できるホスト名を使用してDockerコンテナを作成するにはどうすればよいですか?
- 12. www.mysite.com/pageをpage.mysite.comにマップするにはどうすればよいですか?
- 13. CronJobでログファイルを作成できないようにするにはどうすればよいですか?
- 14. すべてのページで選択するルールを作成するにはどうすればよいですか?
- 15. Xamarin Visual Studioでローカルストレージを作成するにはどうすればよいですか?
- 16. Xamarinフォームヘッダーで動的イメージを作成するにはどうすればよいですか?
- 17. Xamarinフォーム(Android、iOS)でVoice Recoderを作成するにはどうすればよいですか?
- 18. vSphereを使用してホストに共有フォルダを作成するにはどうすればよいですか?
- 19. Polymerで作成したアプリをホストするにはどうすればよいですか?
- 20. Xamppで仮想ホストを作成するにはどうすればよいですか?
- 21. 他のAndroid XamarinアプリケーションからAndroid Xamarinアプリケーションを開くにはどうすればよいですか?
- 22. 他のインテントを開始するエージェントを作成するにはどうすればよいですか?
- 23. 他のネットワークセグメントでコンピュータのホスト名を取得するにはどうすればよいですか?
- 24. ページを更新するまでマウスオーバースティックを作成するにはどうすればよいですか?
- 25. Webページで作成されるアラートボックスの数を数えるにはどうすればよいですか?
- 26. XamarinのZebbleでデフォルトページのようなすべてのページのマスターページを作成するにはどうすればよいですか?
- 27. 実行コンフィギュレーションとデバッグコンフィギュレーションを作成できるようにするにはどうすればよいですか?
- 28. Xamarin Forms ListViewのメッセージボックスを作成するにはどうすればよいですか?
- 29. OWIN自己ホスト型APIへのHTTP GETリクエストを作成するにはどうすればよいですか?
- 30. ネットワーク共有を使用して仮想ホストを作成するにはどうすればよいですか?
CarouselViewは、ページではなく、ビューをホストします。 – Simon