Bonjour,
J''utilise la classe BrightContrastEffect trouvé ici http://khason.net/blog/brightness-an...in-wpf-35-sp1/
Le type de la propriété Brightness (voir extrait de la classe en rouge) est enregistrée en Double et dans le setter en Single
Cela fonctionne en XAML ou par code par binding sur un slider de réglage . Déjà la je séche !!!
Pourquoi cela fonctionne ?
Je veux entrer une valeur dans Brightness par exemple par un slider (SliderContrast) sans passer par XAML
SetCurrentValue(BrightContrastEffect.BrightnessProperty, SliderContrast.Value)
J'ai un message d'erreur: " la valeur de brightness est invalide. " ou alors le shader ne fonctionne plus .
J'ai essayé de tout mettre en type double,single ,de caster en single la valeur du slider....mais rien n'y fait !!
Les registres du shader sont en float(single VB.Net)
Merci pour votre aide
Extrait de la classe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Extrait du shader sampler2D input : register(s0); float brightness : register(c0);[/B]
rigtn
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Public Class BrightContrastEffect Inherits ShaderEffect Public Sub New() PixelShader = m_shader UpdateShaderValue(InputProperty) UpdateShaderValue(BrightnessProperty) UpdateShaderValue(ContrastProperty) End Sub ..... .... Public Property Brightness() As Single Get Return CSng(GetValue(BrightnessProperty)) End Get Set(value As Single) SetValue(BrightnessProperty, value) End Set End Property Public Shared ReadOnly BrightnessProperty As DependencyProperty = DependencyProperty.Register("Brightness", GetType(Double), GetType(BrightContrastEffect), New UIPropertyMetadata(0.0, PixelShaderConstantCallback(0)))
Partager