XAMLを使用したWPFで、このようなIPadのようなオーバーレイウィンドウをどのように実行しますか
トグルボタンまたはエキスパンダーコントロールについて考えました。パネルがスケーラブルであるといいでしょう。ボタン自体とはサイズが異なるセントリックオーバーレイで最も問題が発生します。
ヘルプ、リンク、またはリソースは素晴らしいでしょう。
dowhileforが正しい場合は、Popupクラスが最適です。子としてカスタムコントロールを備えたPopupを使用して、小さなサンプルプロジェクトを作成しました。ポップアップが表示される場所を設定できるため、ポップアップのPlacementTargetフィールドとPlacementフィールドが重要です。お役に立てれば!
カスタムコントロール:
<UserControl x:Class="SilverfighterTest.PopupControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<UserControl.Resources>
<Style TargetType="Button">
<Setter Property="Margin" Value="4"/>
<Setter Property="Padding" Value="7"/>
</Style>
</UserControl.Resources>
<Grid Background="Gray">
<StackPanel>
<Button>Clone</Button>
<Button>Log Call</Button>
<Button> Visit Report</Button>
<Button> Delete</Button>
<Button>Cancel</Button>
</StackPanel>
</Grid>
</UserControl>
ポップアップ付きのウィンドウ:
<Window x:Class="SilverfighterTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:SilverfighterTest"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Rectangle VerticalAlignment="Top" Name="rect" MouseLeftButtonDown="rect_MouseLeftButtonDown" HorizontalAlignment="Right" Height="50" Width="50" Fill="Red">
</Rectangle>
<Popup PopupAnimation="Slide" Placement="Bottom" PlacementTarget="{Binding ElementName=rect}" Name="thePopup" >
<local:PopupControl/>
</Popup>
</Grid>
ウィンドウの背後にあるコード:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void rect_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
thePopup.IsOpen = !thePopup.IsOpen;
}
}