J'utilise le TiltEffect utilisé fourni par Microsoft. Je suis en train de l'utiliser avec TextBlocks, cependant, il ne fonctionne pas, même si j'ajouter le type de TextBlock à la liste des articles Inclinable:TiltEffect sur TextBlock
TiltEffect.TiltableItems.Add(typeof(System.Windows.Controls.TextBlock));
Cependant, si j'Entourez le TextBlock avec un Border et déplacez l'événement Tap vers la bordure, cela fonctionne correctement.
Y at-il une raison spécifique à ce comportement? Ce n'est pas trop élégant d'entourer tous mes TextBlocks tappables avec des frontières.
MISE À JOUR: La même chose s'applique à la forme Rectangle.
MAJ2: Ma solution actuelle est une solution de contournement, je défini un contrôle personnalisé:
<UserControl x:Class="MyApp.Controls.TiltableTextBlock"
Name="tiltableTextBlock"
...>
<Button Margin="0" Padding="0">
<Button.Template>
<ControlTemplate>
<TextBlock Margin="0" Padding="0"
Text="{Binding Text, ElementName=tiltableTextBlock}"
Style="{Binding Style, ElementName=tiltableTextBlock}" />
</ControlTemplate>
</Button.Template>
</Button>
</UserControl>
Et dans le code derrière:
public partial class TiltableTextBlock : UserControl
{
public TiltableTextBlock()
{
InitializeComponent();
}
public string Text
{
get { return (string)GetValue(TextProperty); }
set { SetValue(TextProperty, value); }
}
public static readonly DependencyProperty TextProperty =
DependencyProperty.Register("Text", typeof(string), typeof(TiltableTextBlock), new PropertyMetadata(String.Empty));
//NOTE: hiding the Style property of the base class, so the Style does not get applied to the UserControl, rather to the TextBlock.
public new Style Style
{
get { return (Style)GetValue(StyleProperty); }
set { SetValue(StyleProperty, value); }
}
public new static readonly DependencyProperty StyleProperty =
DependencyProperty.Register("Style", typeof(Style), typeof(TiltableTextBlock), new PropertyMetadata(new Style(typeof(TextBlock))));
}
Je n'utilisez plus aucune autre propriété spécifique TextBlock , juste Text, donc si TextWrapping, FontSize, etc est nécessaire, il doit être implémenté de la même manière.
Cependant, je ne suis pas satisfait de cette solution, donc toujours à la recherche d'une solution de contournement plus élégante. UPDATE3: L'approche ci-dessus n'est pas parfaite, j'ai découvert qu'il se bloque de façon non déterministe avec un "paramètre est incorrect" Exception (parfois il est lancé après le démarrage de l'application, parfois non).
Je pense que cela est lié à ma question que je viens de publier. Avez-vous essayé de rendre votre arrière-plan transparent? http://stackoverflow.com/questions/14664251/why-cant-i-tap-click-blank-areas-inside-of-a-border-contentcontrol-without-sett – kamranicus