C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: SilverlightのTextBoxのIsEnable


(過去ログ 68 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■39820 / inTopicNo.1)  SilverlightのTextBoxのIsEnable
  
□投稿者/ 倉田 有大 (697回)-(2009/08/13(Thu) 23:02:34)

分類:[.NET 全般] 

こんにちは、倉田 有大です。
SilverlightでTextBoxを使用したユーザーコントロールを作成したのですが、IsEditableがなくIsEnableで代用しています。
IsEnableを使ったときフォントの色が薄くなってしまうのですが、色を調節するにはどうしたらよいでしょうか?
引用返信 編集キー/
■39824 / inTopicNo.2)  Re[1]: SilverlightのTextBoxのIsEnable
□投稿者/ 倉田 有大 (698回)-(2009/08/14(Fri) 01:33:46)
失礼、TextBoxの場合IsReadOnlyですね。
この場合、背景が私の環境じゃ、薄いグレーになって、フォントも薄めになってしまいますが、このときの色を指定する事はできるのでしょうか?
引用返信 編集キー/
■39825 / inTopicNo.3)  Re[2]: SilverlightのTextBoxのIsEnable
□投稿者/ お だ (5回)-(2009/08/14(Fri) 07:55:49)
No39824 (倉田 有大 さん) に返信
> 失礼、TextBoxの場合IsReadOnlyですね。
> この場合、背景が私の環境じゃ、薄いグレーになって、フォントも薄めになってしまいますが、このときの色を指定する事はできるのでしょうか?
体験談ですが、
xaml で IsReadOnly と Background 指定するとなぜかうまくいきませんでしたが、コード上で IsReadOnly = true の後に、Background を指定すると色が変わりました。
※但し、IsReadOnly = false の TextBox と比べると色が少し薄くなりましたが。
また、IsReadOnly が false から true に変更されると、背景色が薄いグレーになりました。再度 Background を指定する必要があるみたいです。

以下コード抜粋
xaml

<UserControl x:Class="SilverlightApplication9.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480">
  <Grid x:Name="LayoutRoot">
    <StackPanel>
      <TextBox x:Name="txtReadOnly" Background="AliceBlue" />
      <TextBox x:Name="txtText" Background="AliceBlue" />
      <Button Height="30" Content="背景色変更" Click="Button_Click"/>
      <Button Height="30" Content="ReadOnly変更" Click="Button_Click_1"/>
      <Button Height="30" Content="強制ReadOnly!" Click="Button_Click_2"/>
    </StackPanel>
  </Grid>
</UserControl>

cs

using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;

namespace SilverlightApplication9
{
  public partial class MainPage : UserControl
  {
    public MainPage()
    {
      InitializeComponent();
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
      this.txtReadOnly.Background = new SolidColorBrush(Colors.Green);
      this.txtText.Background = new SolidColorBrush(Colors.Green);
    }

    private void Button_Click_1(object sender, RoutedEventArgs e)
    {
      this.txtReadOnly.IsReadOnly = !this.txtReadOnly.IsReadOnly;
    }

    private void Button_Click_2(object sender, RoutedEventArgs e)
    {
      this.txtReadOnly.IsReadOnly = true;
    }
  }
}

引用返信 編集キー/
■39837 / inTopicNo.4)  Re[3]: SilverlightのTextBoxのIsEnable
□投稿者/ 倉田 有大 (699回)-(2009/08/14(Fri) 13:29:24)
おださん、お返事ありがとうございます。

>※但し、IsReadOnly = false の TextBox と比べると色が少し薄くなりましたが。

試してみました。
Whiteに設定してもうっすらと色がのってしまいますね。

うーん、IsReadOnly専用のコントロールつくったほうがいいのかな。TextBlockを使う。
それとも、スタイルかどっかで設定できるのでしょうか?

引用返信 編集キー/
■39848 / inTopicNo.5)  Re[4]: SilverlightのTextBoxのIsEnable
□投稿者/ こくぶん (21回)-(2009/08/14(Fri) 16:06:48)
No39837 (倉田 有大 さん) に返信

http://msdn.microsoft.com/ja-jp/library/cc645061(VS.95).aspx

TextBox.IsReadOnly = True の場合は、背景色を替えているのではなく、もうひとつ Border を重ねているみたいです。
なので、頑張って TextBox 自体の Background を替えてもダメかも。。。

…… generic.xaml で書かれた VisualState を、上書いたり無効化したりって出来るのかな?
# 時間がとれなくて、まだそこまで調べられていません。。。 m(_ _)m

引用返信 編集キー/
■39857 / inTopicNo.6)  Re[5]: SilverlightのTextBoxのIsEnable
□投稿者/ 倉田 有大 (700回)-(2009/08/14(Fri) 18:06:50)
2009/08/14(Fri) 18:09:07 編集(投稿者)

こくぶんさん、どうもありがとうございます。

TextBox継承させて、大本のStyleもってきて、上に重ねているBorderを無効化とかうんたらかんたらするのかな?

というか、TextBoxのStyle探していたので助かりました-^^;
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -