私は普遍的なアプリケーションにComboBoxを持っています。 ComboBoxのドロップダウンリストの位置を変更するにはUWP
?UWP内のComboBoxのドロップダウンリスト
1
A
答えて
0
ComboBox
のドロップダウンは実際にはPopup
であり、このPopup
を表示する位置はコードの背後に定義されており、アクセスできません。 1つの回避策は、このPopup
を見つけて開いたときに再配置しますが、この方法を使用すると、開かれる度にVerticalOffset
プロパティを計算する必要があり、異なる値のシナリオが非常に多いVerticalOffset
です。
<Button x:Name="rootButton" BorderBrush="Gray" BorderThickness="2" Click="Button_Click" MinWidth="80" Background="Transparent" Padding="0">
<Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch"
Width="{Binding ElementName=rootButton, Path=ActualWidth}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="32" />
</Grid.ColumnDefinitions>
<TextBlock Text="{x:Bind selectedItem, Mode=OneWay}" Grid.Column="0" VerticalAlignment="Center" FontSize="15" HorizontalAlignment="Center" />
<FontIcon Grid.Column="1" FontSize="12" FontFamily="Segoe MDL2 Assets" Glyph="" HorizontalAlignment="Right"
Margin="0,10,10,10" VerticalAlignment="Center" />
</Grid>
<FlyoutBase.AttachedFlyout>
<MenuFlyout Placement="Bottom" x:Name="menuFlyout">
<MenuFlyoutItem Text="Item 1" Click="MenuFlyoutItem_Click" />
<MenuFlyoutItem Text="Item 2" Click="MenuFlyoutItem_Click" />
<MenuFlyoutItem Text="Item 3" Click="MenuFlyoutItem_Click" />
<MenuFlyoutItem Text="Item 4" Click="MenuFlyoutItem_Click" />
<MenuFlyoutItem Text="Item 5" Click="MenuFlyoutItem_Click" />
</MenuFlyout>
</FlyoutBase.AttachedFlyout>
</Button>
このUserControl
で背後にあるコード:
public sealed partial class CustomComboBox : UserControl, INotifyPropertyChanged
{
public CustomComboBox()
{
this.InitializeComponent();
selectedItem = "";
}
private string _selectedItem;
public string selectedItem
{
get { return _selectedItem; }
set
{
_selectedItem = value;
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("selectedItem"));
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void MenuFlyoutItem_Click(object sender, RoutedEventArgs e)
{
var item = sender as MenuFlyoutItem;
selectedItem = item.Text;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
FlyoutBase.ShowAttachedFlyout(sender as Button);
}
}
そして
だから私の提案は、例えば、私はこのようなUserControl
を作成ComboBox
ような行動、カスタムコントロールを設計しています他のページにこのようなCustomComboBox
を使用することができます:
<local:CustomComboBox VerticalAlignment="Center" HorizontalAlignment="Center" />
このCustomComboBox
のデフォルトでは、DropDown
を保持するための十分なスペースがない限り、そのDropDown
のリストが表示されます。この場合、DropDown
はこのCustomComboBox
の上に表示されます。
関連する問題
- 1. Comboboxドロップダウンリスト
- 2. Extjsグリッド内のComboBox
- 3. JTextField内のドロップダウンリスト
- 4. ComboBox内の列挙値
- 5. ComboBoxドロップダウンリストの位置をプログラムで設定できますか?
- 6. ListView MVVM内のTextBox上のUWP InvokeCommandAction
- 7. UWP内の複数のプロパティにバインド
- 8. ComboBoxのSelectionChangeでRowDetailsTemplate内のアクセス制御
- 9. ComboBoxテンプレート内のポップアップ座標は?
- 10. gridview内のドロップダウンリストでの問題
- 11. MVC 3 Razor - HTMLリスト内のドロップダウンリスト
- 12. グリッドビュー内の別のドロップダウンリストで選択された値に基づいて、グリッドビュー内のドロップダウンリストを無効にする
- 13. UWPでのビデオデコード
- 14. UWPのOwinサーバー
- 15. UWPタイルテキストの色
- 16. UWPのレポートツール
- 17. #UWP#、
- 18. エラーBackgroundWorkerのDoWorkイベント内のComboBoxの値を読み取る
- 19. ComboBoxのバインドエラー
- 20. comboBoxのデフォルト値
- 21. GridViewのComboBox
- 22. ComboBoxのHibernateバリデータ
- 23. ComboBox ActionScriptのバグ
- 24. DataForm、SL4のComboBox
- 25. AS3 MC内のComboBox selectedItemにアクセスする際の問題
- 26. DataGridTemplateColumn内のComboBoxの項目をプログラムで設定する
- 27. Combobox内の特定のアイテムを無効にする
- 28. Combobox Silverlightの内部でチェックボックスの値を設定するには?
- 29. C#でScrollViewerの内容を印刷するUWP
- 30. UWPキャッチリストビュースクロールイベント