無効なComboBoxの視覚的なプロパティを与えずに、WPFのComboBoxの値を変更しないようにする方法はありますか?たとえば、テキストフィールドの場合、IsReadOnlyプロパティをtrueに設定できます。ただし、ComboBoxに対してこれを実行しても、ユーザーが異なる値を選択することはできません。外観を変更せずにComboBoxを無効にする
答えて
氏Benagesを含める必要があります、私はIsHitTestVisibの設定だと思いますComboBoxでfalseにフォーカスすると、そのトリックを行う可能性があります。お役に立てれば。
これはユーザビリティ/慣習の観点からは良い考えですか?あなたの目標が可読性である場合は、無効な色を変更してコントラストを少し上げてください。
http://social.msdn.microsoft.com/forums/en-US/wpf/thread/45dd7614-326b-4a51-b809-d25a3ff1ade8/
はとにかく、私はあなたが前のエントリに値をリセットするためにonChangeイベントハンドラを書くことができ疑います。
この理由は、それが単にいくつかを持っている必要があり、既存の画面だという事実によるものです機能は低下しましたが、私は同じルック・アンド・フィールを保ちたいと思っています。アプリケーションのこの部分には少数のユーザーしかいません。私はすでに画面上でいくつかのウォークスルーを行って、使用方法や見た目を正確に把握しています。 –
これを無効にしたいのであれば、なぜcomboBOxを使用するのですか –
フォアグラウンドとバックグラウンドの色を設定できます。これは無効な色を上書きするようです。ドロップダウンボタンは無効になっていますが、これは良好です。
私のコード私はIE 6/Kaxamlでテストしました。
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StackPanel>
<ComboBox Foreground="black" Background="white" IsEditable="True" Text="Hello" IsEnabled="false">
<ComboBoxItem>Test1</ComboBoxItem>
<ComboBoxItem>Test2</ComboBoxItem>
<ComboBoxItem>Test3</ComboBoxItem>
</ComboBox>
</StackPanel>
</Page>
これを試してみて、違いは見られませんでした。 –
申し訳ありません、それは助けになりませんでした。私は助けになる場合に備えて完全なファイルを更新しました。 – Crispy
イム.NETでの同じ場合は背面のIピクチャボックス、フレームまたは他の容器を取得するために使用VB6の日でわからない(すみません、私の頭の上から、私はどの覚えていないことができます) 。私はその中にコンボボックスを入れます。ユーザーには同じように見えます。コンテナを無効にすると、コンボボックスもロックアウトされ、正常に見えます。
私は無効なコントロールは、あなただけの標準的な1つ(または1あなたの使用して)にコンボボックスのControlTemplateを設定することができます無効に見える必要があることに同意しますがこれはあなたの読み取り専用探してまともに与える標準機能
などのいずれかを削除しますコンボボックス
<ComboBox>
<ComboBox.Template>
<ControlTemplate TargetType="{x:Type ComboBox}">
<Grid>
<Microsoft_Windows_Themes:ListBoxChrome x:Name="Border" Height="23" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" RenderFocused="{TemplateBinding IsKeyboardFocusWithin}" RenderMouseOver="{TemplateBinding IsMouseOver}"/>
<TextBlock FontSize="{TemplateBinding FontSize}" VerticalAlignment="Center" Text="Selected Item" Margin="5,0,0,0"></TextBlock>
</Grid>
</ControlTemplate>
</ComboBox.Template>
</ComboBox>
では、次の名前空間
xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero"
なぜ、comboBoxを使用しますか?
私の選択肢は、これが表示専用画面であることを示すコントロールの代わりに使用される境界内のラベルです。
コンボボックスのように見える場合は、ボタンのようなテーマのオブジェクトを使用できますが、クリックすることはできません。灰色のドロップダウン矢印を描くこともできるので、コンボボックスのように見えます。
実際にラベルがうまくいくと、人々が対話できない画面上に実際にコンボボックスがあるのは残念です。
...別の値を選択するからユーザーを防ぎます。あなたには、いくつかのコンボボックスのメソッドをオーバーライドすることにより、キーボード入力を無効にすることができスタイリングの上に
:
using System.Windows.Controls;
using System.Windows.Forms;
using System.Windows.Input;
public class LockableComboBox : ComboBox
{
protected override void OnSelectionChanged(SelectionChangedEventArgs e)
{
if (this.IsReadOnly)
{
e.Handled = true;
}
else
{
base.OnSelectionChanged(e);
}
}
protected override void OnPreviewKeyDown(KeyEventArgs e)
{
if (this.IsReadOnly)
{
if ((e.Key == Key.C || e.Key == Key.Insert)
&& (Keyboard.Modifiers & ModifierKeys.Control)
== ModifierKeys.Control)
{
// Allow copy
Clipboard.SetDataObject(SelectedValue, true);
}
e.Handled = true;
}
else
{
base.OnPreviewKeyDown(e);
}
}
protected override void OnPreviewTextInput(TextCompositionEventArgs e)
{
if (this.IsReadOnly)
{
e.Handled = true;
}
else
{
base.OnPreviewTextInput(e);
}
}
protected override void OnKeyUp(KeyEventArgs e)
{
if (this.IsReadOnly)
{
e.Handled = true;
}
else
{
base.OnKeyUp(e);
}
}
}
- 1. WPFで外観変更イベントを無効にする方法は?
- 2. ボタンの境界線と無効な外観を変更する
- 3. フレックス:無効なチェックボックスの外観を変更する
- 4. 無効なボタンの外観をPHPで変更します
- 5. iOS - UILabelは無効なラベルの外観を変更しました
- 6. .htaccess - URLの外観を変更する
- 7. UIStepperの外観を変更する
- 8. Eclipseの外観を変更する
- 9. DataTable変更トラッキングを無効にする
- 10. Androidキーボードの外観変更
- 11. アクターの無効な外観を設定する方法
- 12. ポップオーバーの外観を変更するには
- 13. Javaのボタンの外観を変更するには
- 14. UITableCellViewの外観を変更する前に(UITableViewから)
- 15. JSliderの外観と感じを変更
- 16. uibuttonsを無効にせずにuiscrollviewでbackgroundTapを有効にする
- 17. コアファイルを変更せずにwordpressプラグインのタクソノミ登録設定を無効にする
- 18. 注釈を変更せずにHibernateの特定のエンティティの第2レベルキャッシュを無効にする方法
- 19. を無効にオリエンテーションを変更
- 20. デフォルトフォントを変更せずにフォント名を変更するpython
- 21. ソースコードを変更せずにJavaクラスオブジェクトのハッシングを変更する
- 22. 外部ライブラリを変更せずにtomcatの下で
- 23. 元のキャンバスの外観に影響を与えずにイメージのサイズを変更しますか?
- 24. Combobox内の特定のアイテムを無効にする
- 25. URLを変更せずにYiiアプリケーションをフレームに変換する
- 26. ComboBoxにフォーカスを変更します
- 27. 更新パネル以外のボタンを無効にする方法は?
- 28. iPhone iOS5ストーリーボードの変更ナビバーの外観
- 29. ulimitを変更せずにnodejs EMFILE例外を処理する方法は?
- 30. WPF:矢印キーのナビゲーションも無効にせずにタブナビゲーションを無効にする方法?
これはトリックでした。お手伝いいただきありがとうございます。 –
このソリューションは、キーボードのナビゲーションをブロックしないという点でまだ問題があるようです。 – jpierson
@jpierson:チェックして、キーボードのナビゲーションをブロックします。私はコントロールを介してタブでComboBoxに到達しようとしましたが、私はComboBoxを選択することができませんでした。 – KMC