WPF Изменение / изменение насыщенности цвета / яркости изображения по триггеру или поведению [дубликат]

Вам нужно объявить пространство имен в XSLT и использовать его в выражениях XPath. Например ::!!4]

  & lt; xsl: stylesheet ... xmlns: my = "http://www.mysite.com" & gt;  & lt; xsl: template match = "/ my: MyRoot" & gt;  ... & lt; / xsl: template & gt;  & Lt; / XSL: стилей & GT;   

Обратите внимание, что вы должны предоставлять некоторый префикс, если вы хотите ссылаться на элементы из этого пространства имен в XPath. Хотя вы можете просто сделать xmlns = "..." без префикса, и он будет работать для литеральных элементов результата, он не будет работать для XPath - в XPath, неподписанное имя всегда считается быть в пространстве имен с пустым URI, независимо от любого xmlns = "..." в области.

4
задан 16 January 2011 в 22:39
поделиться

1 ответ

Хотя вы можете сделать это с помощью конвертера, есть гораздо лучший вариант: использование эффекта шейдера. Вы найдете реализацию GreyscaleEffect на этой странице .

<Style x:Key="grayedIfNotLogged" TargetType="Image">
    <Style.Triggers>
        <DataTrigger Binding="{Binding StatusInfo.IsLogged}" Value="False">
            <Setter Property="Effect">
                <Setter.Value>
                    <fx:GrayscaleEffect />
                </Setter.Value>
            </Setter>
        </DataTrigger>
    </Style.Triggers>
</Style>

...

<Image Source="..." Style="{StaticResource grayedIfNotLogged}" />
11
ответ дан bytecode77 16 August 2018 в 11:32
поделиться
  • 1
    Спасибо, интересное решение, я попробую. – user 17 January 2011 в 21:02
  • 2
    Какое пространство имен xml является вашим 'fx', отображаемым на – LordWilmore 31 October 2014 в 13:03
  • 3
    @LordWilmore, не знаю ... страница, где я взял класс GreyscaleEffect, больше не доступен. – Thomas Levesque 31 October 2014 в 13:54
  • 4
    Идеально. Благодарю. – bafsar 8 September 2016 в 16:39
Другие вопросы по тегам:

Похожие вопросы: