ブログ

割とコンピュータよりの情報をお届けします。

2018年6月

WPF フォーカスが当たったらForeground Backgroundを変更するTextBox

WPF
 フォーカスが当たったらForeground Backgroundを変更するTextBoxを作るのに苦労した。

XAMLは知っている人にとっては便利かと思われるが,
やりかたを試行錯誤するとこ4時間。

非常に苦労した。

フォーカスが当たると
Foreground
Backgroundを変更するTextBoxのスタイル例。

<Window.Resources>
    <Style x:Key="test" TargetType="{x:Type TextBox}">
        <Style.Triggers>
            <Trigger Property="IsFocused" Value="true">
                <Setter Property="Foreground" Value="Red"/>
                <Setter Property="Background" Value="Black"/>
            </Trigger>
        </Style.Triggers>
    </Style>
<Window.Resources>

<TextBox Grid.Row="2" Style="{StaticResource test}" HorizontalAlignment="Right" Text="2093j" FontSize="30"></TextBox>

≫ 続きを読む

2018/06/13   TakeMe

WPF TextBoxのControlTemplateの設定難しい

WPFのTextBoxのControlTemplateは一部だけいれてOverridesDefaultStyleできるのかと思っていた。

WPFのTextBoxのControlTemplateは一部だけいれてOverridesDefaultStyleを記述してしまうとコントロールが消えてしまった。

マイクロソフトのページにはTextBox ControlTemplate の例があって,
「コントロールのビジュアル ツリーを変更するには、コントロールの Template プロパティをその新しい完全な ControlTemplate に設定する必要があります。」

XAMLはいったんきまるとWindows Formsより更新の不具合が少ないが,決まるまで難しい。(慣れていない)

≫ 続きを読む

2018/06/09 コンピュータ   TakeMe

jCanvasのイベントに苦労2

jCanvasのイベントの設定にまたはまってしまった。

普通にjCanvasではmouseoverなどのイベントが設定できるとあったのでまえのように
<script>
$('#image').drawRect({
  layer: true,
  fillStyle: '#000',
  x: 10, y: 100,
  width: 200,
  height: 100,
  fromCenter: false,
  mouseover: function(layer) {
    alert("test");
  }
});
</script>
とやって解決していたが,これが複数ある場合には,layer: trueを設定していないものがイベント後に消える被害が発生することがあった。
なんとも回避できなくて,すべての項目にlayerを設定する必要が出てくる。

≫ 続きを読む

2018/06/08 コンピュータ   TakeMe

WiX Toolsetの使い方間違えた

WiX Toolsetを使ってインストーラを作っていたら使い方を間違えていた。

ProductのIdが同じでUpgradeCodeを変えるとアップグレードインストールできると思っていたので毎回UpgradeCodeを更新していた。

どうも使い方が間違っていた。そんなことをしてもアップグレードインストールはできない。

アップグレードの仕方をUpgradeタグで設定できることも分かった。

適切な利用には勉強が必要だ

≫ 続きを読む

2018/06/05 コンピュータ   TakeMe

Program Filesの中のファイル編集失敗

WixToolsetでインストーラを作って,Program Filesにファイルをインストールすることをやっていた。

中のファイルをメモ帳で編集すると,…
編集できていそうに見えてもできていない。

最近のWIndowsでは,Program Filesの中のファイルを編集しようとしても通常はできないことは詳しい人なら当たり前になっている。

注意しなければならないのは,編集が一見成功しているように見えるということだ。

どういうことかというと,編集したメモ帳(もちろん管理者として実行している)で保存された(つもりの)ファイルを開くと編集後の状態で開かれることがあるのだ。

しかし,Windows サービスなどの設定ファイルがProgram Filesの中に入っていたら,そのファイルは編集されていないことになり,サービスの設定変更も反映されない。

わかりにくい…

(追記 2018.06.03)

手動で編集されることは想定されているが編集されたユーザーにとってのみ変更が有効になる。

他のユーザーにとっては変更されない。(リンク先にもあるが,ユーザ権限や設定,開くアプリケーションやファイルの種類によっては変更される場合もあるようだが,ハマると厄介な仕様である)

Windowsサービスの場合それを実行するユーザを変更する必要があるかもしれない。

≫ 続きを読む

2018/06/02 コンピュータ   TakeMe

IPv6への対応...

サイトをIPv6へ対応させた。設定はリンクを参考にした。

ConoHaの場合には標準でIPv6対応を謳ってはいるが,ひとつ前のUbuntuでufwを使用した場合には使えなくなる不具合が発生しているようだ。

この辺は設定で回避できれば良いのだがわからないので,参考に従い変更して再起動した。

#iface ens3 inet6 dhcp 最初は1行だったところを変更
iface ens3 inet6 static
    address 2001:e42:102:1501:XXX:XXX:XXX:XXX
    netmask 64
    gateway 2001:e42::1 など
    dns-nameservers 2001:e42::2 など

なんのことはないdhcpが使えなくなるのでstaticに直すだけ。(/etc/network/interfaces)

あまり変更をしすぎると新しいUbuntuへアップグレードの際に修正が増えてしまう。かも

≫ 続きを読む

2018/06/01 コンピュータ   TakeMe