2
A
答えて
4
これを行うには多く方法がありますが、ここではカスタムは、各プラットフォーム用のレンダリング書い避ける一方が...
NControl
/Ngraphics
を使用して、あなたは(あなたのポップオーバーを描くNControlView
サブクラスを作成することができますiOSポップオーバー)。その後、XAMLにそれを埋め込むことができますし、
public class PopDownControl : NControlView
{
public PopDownControl()
{
BackgroundColor = Xamarin.Forms.Color.Transparent;
}
public static BindableProperty CornerRadiusProperty =
BindableProperty.Create(nameof(CornerRadius), typeof(int), typeof(PopDownControl), 0,
BindingMode.OneWay, null, (bindable, oldValue, newValue) =>
{
(bindable as PopDownControl).Invalidate();
});
public int CornerRadius
{
get { return (int)GetValue(CornerRadiusProperty); }
set { SetValue(CornerRadiusProperty, value); }
}
public static BindableProperty InsetPositionProperty =
BindableProperty.Create(nameof(InsetPosition), typeof(int), typeof(PopDownControl), 0,
BindingMode.OneWay, null, (bindable, oldValue, newValue) =>
{
(bindable as PopDownControl).Invalidate();
});
public int InsetPosition
{
get { return (int)GetValue(InsetPositionProperty); }
set { SetValue(InsetPositionProperty, value); }
}
public override void Draw(ICanvas canvas, Rect rect)
{
base.Draw(canvas, rect);
var backgroundBrush = new SolidBrush(Colors.White);
var pen = new Pen(Colors.White, 2);
var width = rect.Width - CornerRadius;
var height = rect.Height;
var arcdia = CornerRadius * 2;
var inset = InsetPosition;
var insetWidth = 30;
canvas.DrawPath(
new PathOp[]
{
new MoveTo (arcdia + CornerRadius, CornerRadius),
new LineTo (inset, CornerRadius),
new LineTo (inset + (insetWidth/2), 0),
new LineTo (inset + insetWidth, CornerRadius),
new LineTo (width-arcdia, CornerRadius),
new ArcTo (new Size (arcdia), false, true, new Point (width, arcdia + CornerRadius)),
new LineTo (width, height-arcdia),
new ArcTo (new Size (arcdia), false, true, new Point (width-arcdia, height)),
new LineTo (arcdia + CornerRadius, height),
new ArcTo (new Size (arcdia), false, true, new Point (CornerRadius, height-arcdia)),
new LineTo (arcdia/2, arcdia + CornerRadius),
new ArcTo (new Size (arcdia), false, true, new Point (arcdia + CornerRadius, CornerRadius)),
new LineTo (arcdia + CornerRadius, CornerRadius),
new ClosePath(),
}, pen, backgroundBrush);
}
}
- ...など、その上にコントロールを追加し、背景をぼかし、ポジショニングの面でこれまでに何が必要なのですか
+0
@ SushiHanover、私はあなたのアプローチを試しましたが、私が望んでいないようになっています。このためのいくつかの詳細。 – sahithi
1
Rg.Plugins.Popupはあなたの条件のための最高のプラグインです。それはXamarin.Formsのための素晴らしいプラグインです。 詳細はhereです。
0
あなたの設計どおりslideover popupを実装するためにXamarin.FormsでslideOverkitコンポーネントを使用することができます。
関連する問題
- 1. Xamarin.Formsポップアップ「新バージョンが公開」
- 2. Xamarin.Forms:共有ポップアップのローカリゼーションを管理する方法は?
- 3. Xamarin.Forms
- 4. xamarin.forms
- 5. Xamarin.Formsのカスタムイベント
- 6. ウィザードのXamarin.Formsビュー
- 7. Xamarin.Formsのローカライズ
- 8. Xamarin.Formsのオートコンプリートエントリ
- 9. Xamarin.Formsのエキスパンダー
- 10. Xamarin.Forms - iOSの - UIButton
- 11. Xamarin.Formsのネイティブページ
- 12. は、のAndriod Xamarin.Forms
- 13. Xamarin.Formsのリッチテキストボックス
- 14. Xamarin.formsホームページのFacebook
- 15. Xamarin.formsのアニメーションgif
- 16. iamのXamarin.Formsカスタマイズアクションバー
- 17. AndroidのXamarin.Formsジェスチャー
- 18. xamarin.formsのオーディオポーズC#
- 19. Xamarin.FormsのLongPressGestureRecognizer
- 20. Xamarin.FormsのSystem.MissingMethocException
- 21. Xamarin.Formsでのナビゲーション
- 22. xamarin.formsのオーディオプレイヤー
- 23. Xamarin.Formsスタイリング
- 24. アイコンサイズ - Xamarin.forms
- 25. Xamarin.Forms:ソフトキーボードページ
- 26. xamarin.formsは
- 27. Xamarin.Forms Listview
- 28. Xamarin.Forms Navigation
- 29. Xamarin.Forms:チャート
- 30. Xamarin.Formsカスタムフォント
あなたがCAのプラグインがありますしかし、もしあなたが特にiOSのポップオーバーダイアログのように見せたいのであれば、おそらくカスタムレンダラーを使用する必要があります。 – Jason