1

ポップアップがありますが、ビジュアルデザイナーでは、ポップアップが伸びたり、中央に配置されたりしません。どうしてこれなの?どうすればこの効果を達成できますか?

これが、ビジュアルツリーでの設定方法です。

    <Popup x:Name="namePromptPopup" IsLightDismissEnabled="True" Grid.Row="1" Grid.Column="1">
        <Popup.ChildTransitions>
            <TransitionCollection>
                <PopupThemeTransition/>
            </TransitionCollection>
        </Popup.ChildTransitions>
        <StackPanel>
            <Border BorderBrush="White" BorderThickness="5" >
                <Border.Background>
                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                        <GradientStop Color="#FF600F0F"/>
                        <GradientStop Color="#FFB81C1C" Offset="1"/>
                    </LinearGradientBrush>
                </Border.Background>
                <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
                    <TextBox Text="Generic Name" FontSize="38" HorizontalAlignment="Center" Width="320" />
                    <Button Content="Submit" Click="namePromptSubmit" HorizontalAlignment="Center" />
                </StackPanel>
            </Border>
        </StackPanel>
    </Popup>

ポップアップコントロールが単にレイアウトに応答しないようです。

4

1 に答える 1

1

私はウェブをチェックしました、そしてこの人のおかげで、彼はあなたが使うことができる解決策を持っています。

彼はウィンドウの幅/高さを計算し、ポップアップの幅/高さを使用してオフセットを指定するだけです。

//Here is where I get a bit tricky.  You see namePromptPopup.ActualWidth will show
//the full screen width, and not the actual width of the popup, and namePromptPopup.Width
//will show 0 at this point.  So we needed to calculate the actual
//display width.  I do this by using a calculation that determines the
//scaling percentage from the height, and then calculates that against my
//original width coding.
namePromptPopup.HorizontalOffset = (currentWindow.Bounds.Width / 2) - (400 / 2);
namePromptPopup.VerticalOffset = (currentWindow.Bounds.Height / 2) - (150 / 2);

再度参照

于 2013-02-15T14:37:58.110 に答える