スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: スポンサー広告

例えば、こういう方法もある。

フールプルーフという意味でこういう方法もある。
<Window x:Class="TawamureDays.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:tw="http://schemas.tawamuredays.jp/wpf/gui"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:local="clr-namespace:TawamureDays"
Title="MainWindow" Height="350" Width="525">
<tw:TawamureContents>
<StackPanel>
<TextBox DataContext="{Binding NumericBoxVM}"
tw:FrameworkElementBehavior.UpdatePropertySourceWhenEnterPressed="TextBox.Text">
<TextBox.Text>
<Binding Path="InputValue"
Converter="{StaticResource NullableDecimal2StringConverter}"
ValidatesOnExceptions="False">
<Binding.ValidationRules>
<local:DecimalValidationRule IsNullOK="False"/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
<i:Interaction.Behaviors>
<tw:WatermarkBevavior WartermarkOpacity="0.4"
Watermark="数値を入力してね"/>
</i:Interaction.Behaviors>
</TextBox>
<ComboBox MinWidth="100">
<i:Interaction.Behaviors>
<tw:WatermarkBevavior WartermarkOpacity="0.4"
Watermark="▼ボタンを押して選択してね"/>
</i:Interaction.Behaviors>
</ComboBox>
<PasswordBox MinWidth="100">
<i:Interaction.Behaviors>
<tw:WatermarkBevavior WartermarkOpacity="0.4"
Watermark="パスワードをどうぞ!"/>
</i:Interaction.Behaviors>
</PasswordBox>
<ListBox MinHeight="100">
<i:Interaction.Behaviors>
<tw:WatermarkBevavior WartermarkOpacity="0.4">
<tw:WatermarkBevavior.Watermark>
<TextBlock>
ここには、XXXXのリストが表示されますよ。<LineBreak/>
検索ボタンを押してね。
</TextBlock>
</tw:WatermarkBevavior.Watermark>
</tw:WatermarkBevavior>
</i:Interaction.Behaviors>
</ListBox>
</StackPanel>
<tw:TawamureContents.Footer>
<Button Content="終われ!" Command="{Binding CloseCommand}"/>
</tw:TawamureContents.Footer>
</tw:TawamureContents>
</Window>

いわゆるウォーターマークってやつかな。フォーカスが当たったり、入力があったりすると消える。
20120920_3
フォーカスがあたると、消える。
20120920_4
ちょっと薄い。WartermarkOpacityプロパティで透明度を制御できるようにしている。ユーザに正しいアクションを促す意味では良いかも。
Extended WPF Toolkitには、WatermarkTextBoxがあるけど、あれは、1個のコントロールなので、それにしか使えない。なので、メジャーな入力/選択系コントロールに使えるように、自作した。
コードを全部載せられないので、箇条書きで。
・Blend系のBehaviorクラスを継承して実装。
・表示用のアドーナークラスも実装。
・Loadedイベントでアドーナーを対象コントロールに追加する。
・アタッチされたコントロールによって、フックするイベントを切り替える。
例: TextBox→TextChangedイベント、ComboBox→SelectionChanged
・アドーナーで対象コントロールの上にコントロールをかぶせている感じにする。
あくまで促すだけで、チェックするわけではないから、こっちは気休めなんだけどね。
スポンサーサイト
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: WPF4 | コメント: 0 | トラックバック: 0


この記事へのコメント

コメントの投稿

非公開コメント


サイドバー背後固定表示サンプル

当ブログに書かれたソースコードは流用自由です。

バグ、スペルミス等はありうる事です。

ご利用の際は自己責任でお願いしますm(_ _)m

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。