0

この目的でlyncクライアントを使用しているメッセンジャーアプリケーションを作成しています。私のアプリケーション UI では、リストビューで連絡先 ( name 、 image などのプロパティを持つ LyncClient のオブジェクト) を取得し、次のように定義されているデータ テンプレートにそれらを読み込みます。

<DataTemplate x:Key="ContactsTemplate">
        <Grid HorizontalAlignment="Left" Width="150" Height="150" Margin="10">
            <Border Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}">
                <Image Source="{Binding Image}" Stretch="UniformToFill" AutomationProperties.Name="{Binding Title}"/>
            </Border>
            <StackPanel VerticalAlignment="Bottom" Background="{Binding Availability, Converter={StaticResource AvailabilityToPresenceColor}}" Opacity="0.75">
                <TextBlock Text="{Binding Name}" Foreground="{StaticResource ListViewItemOverlayForegroundThemeBrush}" Style="{StaticResource TitleTextStyle}" Height="20" Margin="15,0,15,15"/>
            </StackPanel>
        </Grid>
    </DataTemplate>

連絡先の画像と名前を示す画像とテキストブロックがあり、その下に示すように、スタックパネルの背景は、可用性ステータスを色にマップするコンバーターにバインドされているため、たとえば、スタックパネルの背景は、連絡先が混雑しています。

今私の質問は、画像に同じ効果を持たせる方法ですか?(プレゼンスステータスに応じて画像をグレーまたは赤にします)

私はバインディングに慣れていないので、このバインディングの概念に完全に迷っています。

私の考えは次のとおりでした:画像のエフェクトイベントハンドラーが あるので、この目的のためにそれを使用することを考えました

<Image Source="{Binding Image}" Stretch="UniformToFill" AutomationProperties.Name="{Binding Title} effect="{Binding Availability, Converter={StaticResource AvailabilityToPresenceColor}}"/>

ある条件下でコンバーター内で画像ソースを取得する必要があるコードを使用したいのですが、バインディング <Image Source="{Binding Image}"を介して画像ソースを取得しているため、コンバーターで画像ソースを取得できません。

あなたのアイデアを私に提案してください。

4

1 に答える 1

1

コンバーターは使用しないでください。このグレースケール効果のようなピクセル シェーダーを使用します: http://bursjootech.blogspot.no/2008/06/grayscale-effect-pixel-shader-effect-in.html

于 2013-01-18T08:12:47.363 に答える