it-swarm.asia

Opak kontroller içeren şeffaf arkaplanlı WPF Penceresi

Aşağıdaki görünüme sahip bir pencerem var:

enter image description here

Bununla birlikte, benim istediğim şey, Button öğesinin Window 'in ana Grid' de denetlediği (ortasındaki metni gri olanları) denetlemesinin 1 opaklık, tamamen opak olması. Bu projeyi miras aldığımda opaklık, açılış Window etiketinin içinde en üst düzeyde 0,75 olarak ayarlandı. Anladığım kadarıyla, bu otomatik olarak tüm çocuklar için zorlayacaktır ve söylenen çocuklar geçersiz kılmayacak.

Şeffaf arka planı ancak opak düğmeleri nasıl gerçekleştirebilirim? Şimdiye kadar bulduğum tek yol (WPF'de göreceli bir acemi olarak), biri şeffaf arkaplan, diğeri ise arkaplan olmayan ancak opak kontroller içeren iki ayrı Windows'a sahip olmak. Bu olsa çok korkunç hack ve eğer yapabilirsem kaçınmak istiyorum.

İstenirse kod sağlayabiliyorum, ancak gerçekten çok basit Window etc kontrolleri içeren Grid içeren Button gibi basit.

Birisi daha önce böyle bir Window inşa etti mi, yoksa bir tane üretme hakkında bir fikri var mı? Teşekkürler.

44
kmarks2

Pencerenin opaklığını ayarlamak yerine, arkaplanının opaklığını ayarlayın:

<Window x:Class="WpfApplication3.MainWindow"
        xmlns="http://schemas.Microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.Microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525"
        AllowsTransparency="True" WindowStyle="None">
    <Window.Background>
        <SolidColorBrush Opacity="0.5" Color="White"/>
    </Window.Background>
    <Grid>
        <Button Width="200" Height="50">button</Button>
    </Grid>
</Window>
88
svinja

Böyle bir stil yaratırsanız:

<Window.Resources>
    <Style TargetType="Button" x:Key="WindowButtons">
        <Setter Property="Opacity" Value="1"/>           
    </Style>
</Window.Resources>

Ardından düğmeniz için XAML'dekilere aşağıdaki gibi başvurabilirsiniz:

<Button Style="{StaticResource WindowButtons}">Tony</Button>

Üstelik artık ebeveynesinin opaklığını devralmamalı.

1
TylerD87

Üstte efekt, Opaklığı tasarımcıdan% 100'den% 60'a (gerektiği şekilde) ayarlayarak da elde edilebilir.

0
RSB