2016-03-02 7 views
0

Просто обнаружил, что вызывает редактор HTML, чтобы бросить игрушки, когда с помощью определенной буквы на клавиатуре ...WPF - Удалить мнемоническую функцию из текстового поля

На той же странице есть текстовые поля, которые содержат такие вещи, как HTML название страницы, название, URL перехода, текст меню .... Если одно из текстовых полей содержит текст с подчеркиванием (например, «Test_Page»), буква «P» не будет работать в редакторе HTML. Я предполагаю (и мог бы быть отсюда, так как я не думал, что textbox.txt может сделать это в отличие от Label.content), что WPF принимает текстовую запись и использует ее как мнемонический ключ. Я знаю, что настройка RecognisesAccessKey лжи может вылечить его, но не может найти способ, чтобы добавить, что свойство или доступ ContentPresenter ...

Это класс, который я использую, чтобы создать элемент управления, а в идеале хотел бы установить его здесь

Public Class TBx 
Inherits TextBox 
Public Shared IsNewRecordProperty As DependencyProperty = DependencyProperty.Register("IsNewRecord", GetType(Boolean), GetType(TBx), New PropertyMetadata(New PropertyChangedCallback(AddressOf IsNewRecordChanged))) 
Public Property IsNewRecord As Boolean 
    Get 
     Return GetValue(IsNewRecordProperty) 
    End Get 
    Set(value As Boolean) 
     SetValue(IsNewRecordProperty, value) 
    End Set 
End Property 

Protected Overrides Sub OnInitialized(e As System.EventArgs) 
    MyBase.OnInitialized(e) 
    VerticalAlignment = Windows.VerticalAlignment.Center 
    HorizontalAlignment = Windows.HorizontalAlignment.Left 
    BorderBrush = New SolidColorBrush(Colors.Silver) 
    Height = 22 
    SpellCheck.IsEnabled = True 
    UndoLimit = 0 

    If IsNewRecord = True Then 
     BorderThickness = New Thickness(1) 
     IsReadOnly = False 
     Background = New SolidColorBrush(Colors.White) 
    Else 
     BorderThickness = New Thickness(0) 
     IsReadOnly = True 
     Background = New SolidColorBrush(Colors.Transparent) 
    End If 

End Sub 

Private Shared Sub IsNewRecordChanged(sender As DependencyObject, e As DependencyPropertyChangedEventArgs) 
    Dim vControl As TBx = TryCast(sender, TBx) 
    Dim vBoolean As Boolean = e.NewValue 
    If vBoolean = True Then 
     vControl.BorderThickness = New Thickness(1) 
     vControl.IsReadOnly = False 
     vControl.Background = New SolidColorBrush(Colors.White) 
    Else 
     vControl.BorderThickness = New Thickness(0) 
     vControl.IsReadOnly = True 
     vControl.Background = New SolidColorBrush(Colors.Transparent) 
    End If 
End Sub 
End Class 

Спасибо

ответ

0

не удалось найти простой способ сделать это из класса, но это работает на странице

Dim CP As New ContentPresenter 
      CP.RecognizesAccessKey = False 

Затем добавить TextBox к ContentPresenter

Case 1 
        vLabel.Text = "Page Name" 

        With vTB 
         .Width = 200 
         .Name = vName & "PageNameTB" 
         .ToolTip = "This is the short name for the page" 
         .IsNewRecord = IsNewRecord 
        End With 
        CP.Content = vTB 

добавить CP к сетке

RegisterControl(SecurePage_Grid, vTB) 

      Grid.SetColumn(vLabel, 0) 
      Grid.SetRow(vLabel, i) 

      If i = 1 Then 
       Grid.SetRow(CP, i) 
       Grid.SetColumn(CP, 1) 
      Else 
       Grid.SetRow(vTB, i) 
       Grid.SetColumn(vTB, 1) 
      End If 

      vGrid.Children.Add(vLabel) 
      If i = 1 Then 
       vGrid.Children.Add(CP) 
      Else 
       vGrid.Children.Add(vTB) 
      End If 

 Смежные вопросы

  • Нет связанных вопросов^_^