Непрозрачные элементы на прозрачном(градиентом фоне) фоне

WPF
  1. 6 года назад

    Здравствуйте ! Столкнулся с такой проблемой:
    Имеется такой вот Border
    <Grid>
    <!--Бардюр-->
    <Border ...
    <Border.OpacityMask>
    <LinearGradientBrush
    EndPoint="0.5,0"
    StartPoint="0.5,1">
    <GradientStop Offset="0"
    Color="Black"></GradientStop>
    <GradientStop Offset="1"
    Color="Transparent"></GradientStop>
    </LinearGradientBrush>
    </Border.OpacityMask>

    <Grid>
    <Button>....</Button>
    </Grid>

    </Border>

    Проблема в том что элементы наносимые на Border имеют такую же градиентную прозрачность ! Как их отучить брать прозрачность у своего "родителя" ?

  2. Укажи свойство у дочерних элементов явно, тогда они(дочерние элементы) не будут брать значение от родителя. Или я не догоняю?

  3. Найти это сообщение RusNekromant Укажи свойство у дочерних элементов явно, тогда они(дочерние элементы) не будут брать значение от родителя. Или я не догоняю?

    например какое свойство ? я чего только уже не менял . . ничего не срабатывает )

  4. Alexandr_Erohin

    Dec 6 Администратор

    Попробуйте явно задать свойство OpacityMask для этих элементов со значением None:

    ...
    <Button OpacityMask="{x:Null}">.....</Button>
  5. Найти это сообщение Alexandr_Erohin Попробуйте явно задать свойство OpacityMask для этих элементов со значением None:

    ... <Button OpacityMask="{x:Null}">.....</Button>

    Пробовал. Не срабатывает . . .кнопка приобретает градиентную маску )

  6. Alexandr_Erohin

    Dec 6 Администратор

    Странно, я набрал приведенный пример и кнопка имеет нормальный фон:

    <Grid>
            <!--Бардюр-->
            <Border Background="Purple">
                <Border.OpacityMask>
                    <LinearGradientBrush EndPoint="0.5,0" StartPoint="0.5,1">
                        <GradientStop Offset="0" Color="Black"></GradientStop>
                        <GradientStop Offset="1" Color="Transparent"></GradientStop>
                    </LinearGradientBrush>
                </Border.OpacityMask>
    
                <Grid>
                    <Button Width="150" Height="100">BUTTON</Button>
                </Grid>
    
            </Border>
        </Grid>

    -image-

    Приведите полный код окна

  7. <Grid>
                <!--Бардюр-->
                <Border
                    Background="Purple">
                    <Border.OpacityMask>
                        <LinearGradientBrush
                            EndPoint="0.5,0"
                            StartPoint="0.5,1">
                            <GradientStop
                                Offset="0"
                                Color="Black"></GradientStop>
                            <GradientStop
                                Offset="1"
                                Color="Transparent"></GradientStop>
                        </LinearGradientBrush>
                    </Border.OpacityMask>
    
                    <Grid>
                        <Button
                        Margin="96,23,76,28"
                        Background="#FFB82727">BUTTON</Button>
                    </Grid>
    
                </Border>
     </Grid>

    -image-

  8. Alexandr_Erohin

    Dec 6 Администратор

    Как вариант поменять компоновку:

    <Grid>
            <!--Бардюр-->
            <Border Background="Purple">
                <Border.OpacityMask>
                    <LinearGradientBrush EndPoint="0.5,0" StartPoint="0.5,1">
                        <GradientStop Offset="0" Color="Black"></GradientStop>
                        <GradientStop Offset="1" Color="Transparent"></GradientStop>
                    </LinearGradientBrush>
                </Border.OpacityMask>
            </Border>
            <Grid>
                    <Button
                        Margin="96,23,76,28"
                        Background="#FFB82727" Content="Button">
                    </Button>
            </Grid>
    </Grid>
  9. Добавлено 6 года назад VDIGIT

    Найти это сообщение Alexandr_Erohin Как вариант поменять компоновку:

    <Grid> <!--Бардюр--> <Border Background="Purple"> <Border.OpacityMask> <LinearGradientBrush EndPoint="0.5,0" StartPoint="0.5,1"> <GradientStop Offset="0" Color="Black"></GradientStop> <GradientStop Offset="1" Color="Transparent"></GradientStop> </LinearGradientBrush> </Border.OpacityMask> </Border> <Grid> <Button Margin="96,23,76,28" Background="#FFB82727" Content="Button"> </Button> </Grid> </Grid>

    =)) ага . . . . ну как вариант да . . ! а вот насчет отмены родительской прозрачности - вопрос далеко не закрыт )))

или зарегистрируйтесь чтобы ответить