2016-06-17 13 views
-3

私はコンボボックスの編集/選択をブロックしたいと思います。私はcmbbox.IsReadOnly = Truecmbbox.IsEditable = Falseを使ってみました。これはユーザーがaltarrow' keysで選択を変更できるようにしました。 cmbbox.isEnabled = Falseが動作し、私の要件は、コンボボックスのフォアグラウンドカラーを無効にしたときに「ブラック」に変更することです。誰でもそれを修正するために私を助けてくれる? XAMLで無効状態でコンボボックスのフォアグラウンドを変更するにはどうすればよいですか?

:分離コードで

<telerik:RadComboBox Grid.Row="0" Grid.Column="2" Grid.ColumnSpan="2" x:Name="combobox1" IsEditable="True" IsFilteringEnabled="True" ItemsSource="{Binding}" TabIndex="7" Style="{ DynamicResource DropDownListStyle }" IsTabStop="True" KeyboardNavigation.TabNavigation ="Local" SelectAllTextEvent="None" Height="23" Margin="0,0,0,2" VerticalAlignment="Center"/> 

:スタイルで

combobox1.IsEnabled = False 

<Style x:Name="DropDownListStyle" x:Key="DropDownListStyle" TargetType="telerik:RadComboBox" > 
       <Setter Property="Foreground" Value="#FF000000"/> 
       <Setter Property="BorderBrush" Value="#ffcccccc"/> 
       <Setter Property="BorderThickness" Value="1"/> 
       <Setter Property="HorizontalContentAlignment" Value="Left" /> 
       <Setter Property="VerticalContentAlignment" Value="Center" /> 
       <Setter Property="FontSize" Value="12"/> 
       <Setter Property="FontWeight" Value="Thin"/> 
       <Setter Property="FontFamily" Value="Trebuchet MS"/> 
       <Setter Property="Panel.ZIndex" Value="10" /> 
       <Setter Property="Height" Value="23" /> 
       <!-- <Setter Property="Focusable" Value="True"/> --> 
       <Style.Triggers> 
        <Trigger Property="IsEnabled" Value="False"> 
         <Setter Property="Background" Value="White"/> 
         <Setter Property="Foreground" Value="Black"/> 
        </Trigger> 
       </Style.Triggers> 
      </Style> 
+0

あなたのコード –

+0

のいくつかは、実際に、あなたの質問を編集し、あなたがこれまでに書いたコードを追加するとよいでしょう共有してください:[最小、コンプリートを作成する方法、および検証可能な例?](http://stackoverflow.com/help/mcve) –

答えて

0

IsReadonly = Trueプロパティをcomboboxに設定し、PreviewKeyDownイベントを発生させて修正しました。

combobox1.IsReadonly = True 

Private Sub combobox1_PreviewKeyDown(sender As Object, e As Windows.Input.KeyEventArgs) Handles combobox1.PreviewKeyDown 
     If combobox1.IsReadOnly Then 
      If e.Key = Key.Tab Then 
       e.Handled = False 
      Else 
       e.Handled = True 
      End If 
     End If 
End Sub 
0

ユーザー読み取り専用を使用せずに、このコンボボックスを変更したり、あなたを有効にすることを防止したい場合コンボボックスSelectedIndexChangedイベントでこれを試すことができます。

あなたのコードを見ることなく、私たちは特定の問題を解決することはできません。

'Inform the user 
MsgBox("You can't change this drop down") 
'Reset any choice 
e.NewValue = e.CurrentValue 

eは、選択されたインデックス変更イベントを選択するときに渡されるイベント引数です。

関連する問題