PopupWindowの外観をDialogのようにする
PopupWindowをそのまま表示すると味気ない黒い背景になってしまう。
一方Dialogを使うと白い罫線枠があったりしてそれっぽくなるのだが、常に画面中央に表示されたりモードレスダイアログとして使うことができない*1。
というわけでPopupWindowの外観をDialogのようにしてみた。
ずいぶん遠回りしているような気がするがこの方法しか見つけることができなかった。
Android.Widget.PopupWindow popup = new Android.Widget.PopupWindow(this); Android.Content.Res.Resources.Theme popupTheme = Android.Content.Res.Resources.NewTheme(); popupTheme.ApplyStyle(Android.Resource.Style.ThemeDialog, true); Android.Content.Res.TypedArray ta = popupTheme.ObtainStyledAttributes(new int[]{Android.Resource.Attribute.WindowBackground}); popup.SetBackgroundDrawable(ta.GetDrawable(0)); ta.Recycle(); (以下略)
これで外見がDialogっぽくなる。
*1:私が方法を知らないだけかも