I can able to create access key for button content during Design time but unable to create during run time
btnContent -- "C&ancel" -- it works perfect
btnContent -- "E&xit" --- not working, when i try to give acces key for letter 'x'
i have also tried with (_)underscore and "Exit" ,but no luck. i jus need to underline 'x' in string "Exit".
Below is the style for my button
<Style x:Key="LTC_ButtomForm_A" TargetType="{x:Type Button}">
<Style.Resources>
<converter:ConverterFirstPartTextButton x:Key="ConverterFirstPartTextButton" />
<converter:ConverterUnderlineTextButton x:Key="ConverterUnderlineTextButton" />
<converter:ConverterLastPartTextButton x:Key="ConverterLastPartTextButton" />
</Style.Resources>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border x:Name="Fondo" Margin="0" Padding="10,0" Background="#FF253A94" BorderBrush="#00000000" BorderThickness="1" CornerRadius="5">
Text="{TemplateBinding Content,Converter={StaticResource ConverterFirstPartTextButton}}" TextAlignment="Center" TextWrapping="Wrap" VerticalAlignment="Center">
<Run Text="{TemplateBinding Content, Converter={StaticResource ConverterUnderlineTextButton}}" TextDecorations="Underline" />
<Run Text="{TemplateBinding Content, Converter={StaticResource ConverterLastPartTextButton}}" />
</TextBlock>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
where ConverterFirstPartTextButton
Public Class ConverterFirstPartTextButton
Implements IValueConverter
#Region "IValueConverter Members"
Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object _
Implements IValueConverter.Convert
Dim part As String = String.Empty
If value IsNot Nothing Then
part = value.ToString().Split("&").FirstOrDefault()
End If
Return part
End Function
Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) _
As Object Implements IValueConverter.ConvertBack
Return value
End Function
#End Region
End Class
ConverterUnderlineTextButton
Public Class ConverterUnderlineTextButton
Implements IValueConverter
#Region "IValueConverter Members"
Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object _
Implements IValueConverter.Convert
Dim underlineLetter As String = String.Empty
If value IsNot Nothing Then
underlineLetter = value.ToString().Split("&").LastOrDefault
End If
If underlineLetter = value Then
Return String.Empty
Else
underlineLetter = underlineLetter.Substring(0, 1)
Return underlineLetter
End If
End Function
Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) _
As Object Implements IValueConverter.ConvertBack
Return value
End Function
#End Region
End Class
ConverterLastPartTextButton
Public Class ConverterLastPartTextButton
Implements IValueConverter
#Region "IValueConverter Members"
Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object _
Implements IValueConverter.Convert
Dim part As String = String.Empty
If value IsNot Nothing Then
part = value.ToString().Split("&").LastOrDefault
End If
If part <> value And part.Length > 1 Then
part = part.Substring(1)
Return part
Else
Return String.Empty
End If
End Function
Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) _
As Object Implements IValueConverter.ConvertBack
Return value
End Function
#End Region
End Class
these converts main use is to underline the given text and its working Perfect during initialization. But when i change the content during run time it shows as above image(fig 2).