سؤال

ولقد حصلت على Popup في بلدي XAML لاظهار بعض المعلومات. عندما يظهر مربع الارتفاع، وبالتالي لا يوجد لديه Border ويبدو أن الذوبان في Background من الصفحة. هو فقط يحتاج إلى Border، ومثالي انخفاض الظل وراء ذلك لإظهار نوع من طبقات والتركيز.

وأي أفكار كيفية أسلوب منبثقة أن يكون لها حدود وربما ظل التأثير؟

هل كانت مفيدة؟

المحلول 3

شكرا، انتهى بي الأمر يعطيها (بالكاد) ظهور مثل 3D عن طريق وضع الحدود مثل:

 <Border BorderBrush="White" BorderThickness="3,3,0,0">
            <Border BorderBrush="Black" BorderThickness="1,1,3,3">
</Border>
</Border>

ويبدو لائق جدا!

نصائح أخرى

وأسهل بكثير في رأيي هو وضع هامشا حول قافزة الحدود كبيرة بما يكفي لDropShadowEffect، أي بمعنى.

<Border ... Margin="0 0 8 8">
    <Border.Effect>
        <DropShadowEffect ... />
    </Border.Effect>
    <!-- Popup Content Here -->
</Border>

ووقافزة ينبغي أن يسمح الشفافية، وهذا هو AllowsTransparency = صحيح.

<Popup PopupAttributes="SetByYou">
 <Border BorderAttribute="SetByYou">
  <!-- Content here -->
 </Border>
</Popup>

ويبدو بالنوافذ لا تدعم حاليا الظلال، <وأ href = "http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/71a1da61-9e6e-47e5-be20-6190aedc3c95" يختلط = "نوفولو noreferrer"> انظر الرابط .

ولكن، لقد جئت مع الحل هذا الذي يعمل بشكل جيد بدلا IMO. في الأساس والفكرة هي أن يكون قماش متداخلة داخل قماش شفاف آخر، ومجرد تطبيق شبح الهبوط إلى قماش متداخلة. بسيط. هيريس مثال:

        <Grid>
        <TextBox x:Name="MyTxtBx" Width="50" 
                 Height="20" Text="Hello"/>
        <Popup IsOpen="True" Width="200" Height="100" 
               PlacementTarget="{Binding ElementName=MyTxtBx}" 
               AllowsTransparency="True" >
            <Canvas Background="Transparent">
                <Canvas Background="Green" Width="150" Height="50">
                    <Canvas.BitmapEffect>
                        <DropShadowBitmapEffect Softness=".5" 
                                                ShadowDepth="5" 
                                                Color="Black"/>
                    </Canvas.BitmapEffect>
                    <Label Content="THIS IS A POPUP TEST"/>
                </Canvas>
            </Canvas>
        </Popup>
    </Grid>

والنقاط ملاحظة هي أن قماش متداخلة يجب أن يكون أصغر من حجم انها الحاوية. أيضا AllowsTransparency يجب تعيين أيضا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top