Ограничить область, к которой применяется эффект шейдера WPF - PullRequest
1 голос
/ 22 июня 2010

Как можно ограничить область, к которой применяется эффект шейдера WPF, аналогично тому, как устаревший BitmapEffectInput.AreaToApplyEffect раньше работал для BitmapEffects? Есть ли эквивалентное свойство для шейдерных эффектов, или я должен сам добавить его в каждый шейдерный эффект, который я пишу?

1 Ответ

1 голос
/ 16 августа 2010

Нарисуйте макет (Сетка, Холст и т. Д.), Чтобы одна или несколько ячеек содержали запрещенную область. Затем нарисуйте Rectangle или Border в этой области, чтобы получить желаемый эффект, который вы ищете. Не забудьте сначала добавить Rectangle или поиграть с ZIndex, как я покажу ниже, чтобы ваш код не скрывал никаких элементов управления.

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition/>
        <RowDefinition/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
    <Rectangle Grid.Column="0" Grid.Row="1" Panel.ZIndex="0" >
        <Rectangle.Style>
            <Style TargetType="{x:Type Rectangle}">
                <Setter Property="Fill" Value="Blue"/>
            </Style>
        </Rectangle.Style>
    </Rectangle >
    <TextBox Grid.Column="0" Grid.Row="1" Height="25" Margin="10" Text="Test 123" Panel.ZIndex="1" />
</Grid>
...