Hatena::ブログ(Diary)

Yuya Yamaki’s blog このページをアンテナに追加 RSSフィード Twitter

2006年10月31日(火曜日)

コードネーム"Fidalgo"は次のCTPが最後になる?

下記のJim Galasynさんのblogからの情報ですが、どうやら"Fidalgo"は次のCTPが最後のリリースになる模様です。

October CTP and the last build of Fidalgo – Jim Galasyn's Learning Curve


"Fidalgo"について分からない方はこちらをご参照ください。

"Orcas"と"Fidalgo" - Yuya Yamaki’s blog


一部を私なりに翻訳しました。間違っていると困るので、一応原文も見ていただほうが良いかと思います。

Microsoft Visual Studio 2005 Extensions for.NET Framework 3.0(最終的なCTP)をVisual Studio 2005に追加インストールすることで、開発者は.NET Framework3.0に対応したアプリケーションを作成することができます。
このツールは、Visual Studio Orcasの早期テクノロジープレビューです。
これはVisual Studio 2005に追加インストールするかたちで提供されるリリースの最後のリリースです。
これらに含まれるすべての新技術は、"Orcas"というコードネームの次の完全なバージョンのVisual Studioに含まれる予定です。


というわけで、WPFアプリケーション開発者の方は、次の"Fidalgo"のCTPを是非とも手に入れてくださいだそうです。

The DWG/DXF to XAML Conversion Toolkit (D2X)

AutoCADの形式であるDWGファイルとその他の多くのCADソフトでも扱えるDXFファイルからXAMLファイルに変換するツールが、CodePlexに登場したようです。

no title


まだ実際に試してはいないのですが、上記のページの画像を見る限りかなりの精度で変換されているように思います。


Adobe Illustrator CCの購入 | ベクターグラフィックデザインソフトウェアのaiファイルからXAMLに変換するツールもすでにあるので、これで2D、3Dともにメジャーな形式からの変換ツールがそろったと言えそうです。

Adobe Illustrator to XAML Export | Eye Candy


このようなものが充実してくれば、XAMLの普及はより高まりそうですね。

2006年10月30日(月曜日)

ControlTemplate

WPFのUIエレメントは、Styleプロパティ(no title)を持っており、これを利用することであらかじめ定義しておいたプロパティ、トリガ、イベントなどを一度に適用させることができます。

このStyleについてまだご存じない方は、下記のページが参考になるかと思います。

no title


このStyleとは別に、WPFのコントロール(no title)は、Templateプロパティ(no title)を持っており、これを利用することでプロパティでは設定できない外観を変更することができます。

今までのWindowsフォームコントロールでは、プロパティでコントロールの背景色などは簡単に変更できましたが、たとえばボタンそのものの形を変更するとなると、少々特殊な処理を書かなければなりませんでした。また、それに伴ってマウスの処理なども変更しなければならかったこともあったかと思います。

WPFのコントロールでは、ControlTemplateを定義しておきそれを各コントロールへ適用することで、このようなことを比較的簡単に実現することができます。


ここでは三角形のボタンを作成する例をご紹介します。

この例では、StyleとControlTemplateの両方を使用します。StyleとControlTemplateはリソースとして定義する必要があります。

リソースは、システムレベルのリソース、アプリケーション単位のリソース、Window単位のリソース、各エレメント単位のリソースと様々なレベルで定義することができます。今回はResourceDictionaryとして別ファイルに定義したものを、Windowのリソースとして適用します。

リソースについてまだよくご存じない方は、下記のページが参考になるかと思います。

no title


Dictionary1.xaml

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    >
    <Style  TargetType="{x:Type Button}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Button}">
                    <Grid>
                        <Polygon x:Name="ButtonBG" Points="0,200 150,0 300,200 0,200"
                                Stroke="Gold" StrokeThickness="3">
                            <Polygon.Fill>
                                <SolidColorBrush Color="Orange"/>
                            </Polygon.Fill>
                        </Polygon>
                        <ContentPresenter Margin="0,120,0,0" TextBlock.FontSize="36"
                                          TextBlock.TextAlignment="Center">
                        </ContentPresenter>
                    </Grid>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="true">
                            <Setter Property="Path.Fill" Value="Gold" TargetName="ButtonBG" />
                        </Trigger>
                        <Trigger Property="IsPressed" Value="true">
                            <Setter Property="Path.Fill" Value="OrangeRed" TargetName="ButtonBG" />
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="true">
                <Setter Property="RenderTransform">
                    <Setter.Value>
                        <TransformGroup>
                            <TransformGroup.Children>
                                <TransformCollection>
                                    <RotateTransform Angle="-10"/>
                                    <TranslateTransform X="-20"/>
                                </TransformCollection>
                            </TransformGroup.Children>
                        </TransformGroup>
                    </Setter.Value>
                </Setter>
            </Trigger>
            <Trigger Property="IsPressed" Value="true">
                <Setter Property="RenderTransform">
                    <Setter.Value>
                        <TransformGroup>
                            <TransformGroup.Children>
                                <TransformCollection>
                                    <RotateTransform Angle="-10"/>
                                    <TranslateTransform X="-20"    Y="10"/>
                                </TransformCollection>
                            </TransformGroup.Children>
                        </TransformGroup>
                    </Setter.Value>
                </Setter>
            </Trigger>
        </Style.Triggers>
    </Style>
</ResourceDictionary>


Window1.xaml

<Window x:Class="Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="ControlTemplate" Height="150" Width="400"
    >
    <Window.Resources>
        <ResourceDictionary Source="\Dictionary1.xaml"/>       
    </Window.Resources>
    <Viewbox Stretch="Uniform">
        <StackPanel Orientation="Horizontal">
            <Button Margin="10">はい</Button>
            <Button Margin="10">いいえ</Button>
            <Button Margin="10">キャンセル</Button>
        </StackPanel>
    </Viewbox>
</Window>


これを実行しますと、下記のような画面となります。

f:id:Yamaki:20061030113728p:image


ボタンに三角形の画像を張り付けたのとは違い、きちんと三角形の中にマウスポインタがないとボタンを押すことはできません。

Window1.xamlのResourceDictionary部分をコメントアウトすると、下記のような画面になります。

f:id:Yamaki:20061030114608p:image


ControlTemplateを使えば、今までは実現したくてもできなかった素敵なUIを作ることができそうです。

2006年10月25日(水曜日)

Kaxaml 0.1 (Alpha)

こちらのうなまなさんのblogで知りました。

XAMLPadよりいいかも


下記のページにて、KaxamlというXamlPadの豪華版のようなアプリケーションが公開されています。

Kaxaml 0.1 (Alpha)


さっそく使ってみました。以下のような機能があります。

  • スニペット
  • 検索、置換
  • 特定行への移動
  • カラーピッカー
  • 自動バックアップ


この中でも特にスニペットの豊富なスタイルはかなり使えます。

スニペットのスタイルを使って、少し色を変えるとこんな感じの画面をあっという間に作成することができます。

f:id:Yamaki:20061025115829p:image


残念ながらインテリセンスはありませんが、ここからスニペットをコピーしてCiderで使うという用途でも十分魅力があるかと思います。ぜひお試しあれ。

2006年10月24日(火曜日)

2つのASP.NET AJAX - 1.0 BetaとCTP Beta

10/20にASP.NET AJAXの1.0 BetaとCTP Betaがリリースされました。

Microsoft Download Center: Windows, Office, Xbox & More


Microsoft Download Center: Windows, Office, Xbox & More

これらの詳細については、ナオキさんにおまかせするとして、ここでは私が気になった部分について自分のためにも少しまとめておきたいと思います。


なぜ1.0 BetaとCTP Betaの2つがあるのか

1.0 Betaは、マイクロソフトが正式なサポートをするにあたり今までのCTP(July CTP)から限定された機能だけにしぼったものと考えることができるかと思います。そして、この1.0 BetaにCTP Betaをプラスしたものが、July CTPに相当するフル機能を提供するものになります。つまり、おそらくは次のバージョンのCTPということになるのだと思います。


名前空間

-サーバサイドクライアントサイド
1.0 BetaMicrosoft.WebSys
CTP BetaMicrosoft.Web.PreviewSys.Preview


1.0 Betaでできること、CTP Betaじゃないとできないこと

これについては、下記の機能表を見ていただくとよくわかるかと思います。

1.0 BetaとCTP Betaの機能表

クライアントサイドのコントロールやxml-scriptが1.0ではサポートされないというのが、結構大きなところだと思います。


July CTPから変わったところは?

クライアントのScript Libraryはかなり変わっているようです。

もっとも身近なところですと、

$("Input1")

$get("Input1")

と書かなければならなくなったということでしょうか。


Webサービスを定義するときは、今までは特に特別なことをする必要がなかったように記憶していますが、下記の属性を追加してやらないといけないようです。

<Microsoft.Web.Script.Services.ScriptService()>


それから、DataTableからJSON形式へのシリアライズ、デシリアライズができなくなっています。Microsoft.Web.Preview.Script.Serialization.Converters.DataTableConverterというクラスがあるので、おそらくできるとは思うのですが現在のところ方法が不明です。

フォーラムの下記のページを見守っていればそのうちわかると思いますので、そのときはまたこちらで報告します。

no title

2006年10月20日(金曜日)

System.Windows.Controlsの紹介 - TabControl

今回は、WindowsフォームのTabControl(System.Windows.Forms名前空間)と比較するかたちで、WPFのTabControl(System.Windows.Controls名前空間)を紹介したいと思います。


WindowsフォームのTabControl

TabControlはTabPageをコレクションとして持っており、このTabPage1つ1つが実際のタブの部分になります。

TabPageクラスにもEnabledプロパティはあるのですが、MSDNライブラリを見ると「このコントロールでは、このメンバは無効です。 」と記載されています。

TabPage.Enabled プロパティ (System.Windows.Forms)

しかしながら、一方ではTabPageクラスEnabledプロパティを使用してタブを有効または無効にする方法が、下記のページにて紹介されています。

方法 : Windows フォーム TabControl の表示形式を変更する | Microsoft Docs


実際に左から2番目のタブのEnabledプロパティをFalseに設定した結果がこちらです。

f:id:Yamaki:20061020105809p:image


タブ自体が無効になる(タブを選択できない)のではなく、そのタブ上に配置されたコントロールが無効になっているのが分かります。


TabPlus for .NET 2.0J

TabPlus for .NET 2.0Jで、同じく左から2番目のタブのEnabledプロパティをFalseに設定すると、このような結果となります。

f:id:Yamaki:20061020110218p:image


タブそのものが無効となり、タブを選択できなくなっているのが分かるかと思います。

※TabPlus for .NET 1.0Jの場合、WindowsフォームのTabControlと同じ動作となります。


WPFのTabControl

WPFでは、TabPageではなくTabItemとなり、Enabledプロパティの代わりにIsEnabledプロパティを使用します。


XAML

<Window x:Class="Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="TabControl - WPF" Height="150" Width="240"
    >
    <DockPanel>
        <TabControl>
            <TabItem Header="Tab1"/>
            <TabItem Header="Tab2" IsEnabled="False"/>
            <TabItem Header="Tab3"/>
        </TabControl>
    </DockPanel>
</Window>


結果はこのようになります。

f:id:Yamaki:20061020110848p:image


TabPlus for .NET 2.0Jと同じように、タブそのものが無効となりタブを選択できなくなります。やはりこのような動作を望んでいた人が多かったということなんでしょうね。

System.Windows.Controlsの紹介 - ScrollViewer

XAML

<Window x:Class="Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="ScrollViewer" Height="120" Width="210"
    >
    <ScrollViewer HorizontalScrollBarVisibility="Visible">
        <TextBlock FontFamily="Segoe Script Bold" FontSize="48">GrapeCity inc.</TextBlock>
    </ScrollViewer>
</Window>


f:id:Yamaki:20061020172142p:image

2006年10月19日(木曜日)

英語版のInternet Explorer 7がリリース

英語版のInternet Explorer 7がリリースされました。下記のページからダウンロードすることができます。

no title


今回リリースされたものは、対応するOS別に以下の5つになります。


バージョンは、7.0.5730.11になります。

f:id:Yamaki:20061019112757p:image


下記のIEBlogによると、アラビア語、フィンランド語、フランス語,、ドイツ語、 日本語、スペイン語の6つは、2、3週間以内にリリースされ、残りの言語は11月から1月にかけてのリリースとなるようです。

IE7 for the World – IEBlog

2006年10月18日(水曜日)

Visibilityプロパティ

.NET Framework 2.0から加わったFlowLayoutPanel コントロール (Windows フォーム) | Microsoft Docsを使うと、コントロールを水平または垂直の方向に並べて配置することができます。

no title


通常、コントロールのVisibleプロパティをFalseに設定すれば、そのコントロールを非表示状態にすることができます。FlowLayoutPanelコントロール上に配置したコントロールの場合も同じではあるのですが、実際にはそのコントロールが存在しないことになりその分レイアウトはつめて表示されます。

FlowLayoutPanelコントロール上にButtonコントロールを3つ配置し、Button2のVisibleプロパティをFalseに設定した場合

f:id:Yamaki:20061018164312p:image


WPFのコントロール(System.Windows.Controls名前空間)には、Visibleプロパティの代わりにVisibilityプロパティが用意されており、このプロパティにはVisible、Collapsed、Hiddenの3つを設定することができます。


XAML

    <StackPanel>
        <Button>Button1</Button>
        <Button Visibility="Visible">Button2</Button>
        <Button>Button3</Button>
    </StackPanel>


f:id:Yamaki:20061018165220p:image

左から、Button2のVisibilityプロパティの値をVisible、Collapsed、Hiddenに設定した結果です。

このように、WPFのStackPanelコントロールではVisibilityプロパティをHiddenにすることで、レイアウトを保ったままコントロールを非表示状態にすることができます。

2006年10月13日(金曜日)

Virtual PC 2007 Beta

下記のMicrosoft ConnectのページのVirtual PC 2007 Beta Programに参加することで、誰でもVirtual PC 2007 Betaをダウンロードすることができます。

Microsoft Connect is Retired - Collaborate | Microsoft Docs


こちらにホワイトペーパーがあります。

Windows | Official Site for Microsoft Windows 10 Home & Pro OS, laptops, PCs, tablets & more

以下、概要で述べられている4つのポイントです。

  • Windows Vistaのための最適化
  • Virtual Server 2005 R2をベースとしたパフォーマンスの改良
  • 64ビットOSのサポート
  • VistaをゲストOSとしたときのサウンドデバイスをサポート


ホストOS、ゲストOSともにWindows Vistaをサポートしているようです。64ビット版のVistaをホストOSとして、ゲストOSに16ビットOSを実行することもサポートしているようです。


64ビットではないけれどVista上でWindows 3.1を実行した画面

f:id:Yamaki:20061013140706p:image

System.Windows.Controlsの紹介 - Expander

XAML

<Window x:Class="Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Expander" Height="200" Width="200"
    >
    <StackPanel>
        <Expander Margin="10" Padding="5" Background="LightBlue" IsExpanded="True" Header="PowerTools">
            <StackPanel>
                <TextBlock Text="ActiveReports"/>
                <TextBlock Text="SPREAD"/>
                <TextBlock Text="InputMan"/>
            </StackPanel>
        </Expander>
    </StackPanel>
</Window>


f:id:Yamaki:20061013174427p:image

2006年10月12日(木曜日)

知ってる?! True WinChart for .NETコード編

下記のページには、Windowsフォーム用のチャート生成コンポーネントであるTrue WinChart for .NET 3.0Jを使ってのグラフを作成する基本ステップが紹介されています。

知ってる?! True WinChart for .NET

上記のページで紹介している方法は、プロパティウィンドウとデザイナを使った設定だけでグラフを作成しており、いわゆるノンコーディングな方法となっています。

データは、データベースにあるグラフ用のデータを使うという方法をとっていますが、データベースから取得したデータを加工してグラフのデータソースとするという方法も多く使われるかと思います。

ということで、ここではプロパティウィンドウとデザイナを使った設定はいっさい使わずに、コードだけでグラフを作成する場合の一例をご紹介しておこうと思います。


フォームにC1Chartコントロールを1つ貼り付け、下記のコードを記述します。


Visual Basic

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 
    ' C1Chartコントロールを配置したときのデフォルト設定では、グループ0に
    ' 4つのシリーズが設定されているので、それらをすべて削除します。
    C1Chart1.ChartGroups.Group0.ChartData.SeriesList.RemoveAll()
 
    ' 視覚エフェクトを有効にします。
    C1Chart1.VisualEffects.Styles("Default").Enabled = True
 
    ' 凡例を表示します。
    C1Chart1.Legend.Visible = True
 
    ' 凡例の位置を変更します。
    C1Chart1.Legend.Compass = C1.Win.C1Chart.CompassEnum.South
 
    ' X軸のラベルを傾けます。
    C1Chart1.ChartArea.AxisX.AnnotationRotation = -50
 
    ' X軸とY軸の名称を設定します。
    C1Chart1.ChartArea.AxisX.Text = "年月"
    C1Chart1.ChartArea.AxisY.Text = "頭数"
 
    ' XデータのためのListを作成
    Dim XList As New List(Of String)
    Dim iMonth As Integer
 
    For iMonth = 4 To 0 Step -1
        XList.Add(System.DateTime.Now.AddMonths(-iMonth).Year.ToString + "/" _
            + System.DateTime.Now.AddMonths(-iMonth).Month.ToString)
    Next
 
    ' 1つ目のシリーズを作成
    Dim mySeries As C1.Win.C1Chart.ChartDataSeries = C1Chart1.ChartGroups.Group0.ChartData.SeriesList.AddNewSeries()
 
    ' CopyDataInメソッドを使って配列からXデータの値を一度に設定します。
    ' 配列はToArrayメソッドを使ってListから取り出します。
    mySeries.X.CopyDataIn(XList.ToArray)
 
    ' 作成されたXデータの配列の長さ
    Dim xDataLength As Integer = mySeries.X.Length
 
    ' Yデータの作成(直接値を代入)
 
    ' シリーズのラベルは凡例に表示されます。
    mySeries.Label = "カバ"
    ' Yデータの配列の長さをXデータの配列の長さと同じ長さに設定します。
    mySeries.Y.Length = xDataLength
 
    ' 値を直接代入していきます。
    mySeries.Y(0) = 1
    mySeries.Y(1) = 5
    ' 欠損値の設定
    mySeries.Y(2) = C1Chart1.ChartGroups.Group0.ChartData.Hole
    mySeries.Y(3) = 2
    mySeries.Y(4) = 3
 
    ' 2つ目のシリーズを作成
    mySeries = C1Chart1.ChartGroups(0).ChartData.SeriesList.AddNewSeries()
 
    ' 2つ目以降のシリーズでは、AutoEnumerateプロパティをTrueに設定
    ' することで、同じXデータを設定する必要がなくなります。
    mySeries.AutoEnumerate = True
 
    ' シリーズのラベルは凡例に表示されます。
    mySeries.Label = "ワニ"
 
    ' YデータのためのListを作成
    Dim YList As New List(Of Integer)
    Dim i As Integer
    Dim myRandom As New System.Random
 
    For i = 0 To xDataLength - 1
        YList.Add(myRandom.Next(1, 10))
    Next
 
    ' CopyDataInメソッドを使って配列からYデータの値を一度に設定します。
    mySeries.Y.CopyDataIn(YList.ToArray)
 
End Sub


実行すると、このようなグラフが表示されます。

f:id:Yamaki:20061012151839p:image


このようなX軸が共通でY軸のみが異なるようなグラフを複数作成する場合、X軸は最初のシリーズだけに設定し、2つ目以降のシリーズはAutoEnumerateプロパティをTrueに設定してやるという部分がポイントになるかと思います。

2006年10月11日(水曜日)

ADOBE READER 8 Pre-Release

Adobe ReaderならびにAdobe Acrobatシリーズの新バージョン8.0がリリースされるようです。

少し古い記事ですが、私は知りませんでした。

no title]


なんだか、毎年のようにバージョンがあがっているなぁと思い調べてみたのですが、そうでもないんですね。だいたい2年に1回ペースのようです。

バージョンリリース時期
6.02003/06
7.02004/12
8.02006/12


ADOBE READER 8 Pre-Releaseなるものを発見したので、インストールしてみました。

f:id:Yamaki:20061011142844p:image

記事にも書いてある通り、YahooのWeb検索ではなくて、文書内の文字列を検索する検索窓がツールバーに表示されています。また、ズームなども一瞬で切り替わるのではなくて、少し段階的にズームするような視覚効果が加えられているようです。

2006年10月10日(火曜日)

RC2(ビルド5744)

RC2がリリースされたということで、先週やってきた新しいノートPCへインストールしてみました。

CPUはCore 2 DuoMerom)の2.16GHzですが、プロセッサのスコアは5.1でした。Pentium 4の2.8GHzで4.1だったので、もうちょっと高い数字を出して欲しかったところです。


現時点であまり書くこともなかったので、参考になるかわかりませんが下記のような表を作ってみました。確認できるところだけ、埋めています。

Vista msvbvm60.dllWCFWPFWFIE
-6.00.9782(VB6SP6)----
-----7.0.5346.5(Beta2)
6.0.5384(Beta2)6.00.9782----
-----7.0.5450.4(Beta3)
6.0.5600(RC1)6.00.97923.0.04324.173.0.6722.03.0.4203.27.0.5600.15384
-----7.0.5700.7(RC1)
6.0.5728 6.00.97933.0.04506.033.0.6808.03.0.4203.27.0.5728.16387
6.0.5744(RC2)6.00.97963.0.04506.093.0.6828.03.0.4203.27.0.5744.16384

2006年10月06日(金曜日)

Google Code Search

こちらのishisakaさんのblogで知りました。

no title


なんと、Googleがソースコード専用の検索サイトを始めたみたいです。

Error 404 (Not Found)!!1

検索には正規表現を使えるようです。

ためしに

file:\.vb$ ActiveReport1

と検索してみた結果がこちら

Error 404 (Not Found)!!1


これは結構使えそうですね。

ただ、ishisakaさんが書かれているように心配事もありますが。

"Orcas"と"Fidalgo"

少し前になりますが、

Pre-release Software Visual Studio Code Name ”Orcas” - September Community Technology Preview (CTP)

というものがVirtual PCのイメージで提供されています。

Code Name "Orcas"と書いてあるので、こちらと非常に紛らわしいですが、実際のところ本当の意味での"Orcas"はこちらになるのだと思います。


整理するとこんな感じでしょうか。

名称code name対応するFramework形態
Pre-release Software Visual Studio Code Name ”Orcas” - September Community Technology Preview (CTP)"Orcas"3.5次のバージョンのVisual Studio
Microsoft Visual Studio Code Name “Orcas” Community Technology Preview ? Development Tools for .NET Framework 3.0"Fidalgo"3.0Visual Studio 2005のエクステンション

もちろん、これは今リリースされているこれらのCTPがそうなっているだけであって、最終的にどれがどのような形でいつリリースとなるのかは分かりません。


ちなみに、今回リリースされたVirtual PCのイメージの環境には、たしかにMicrosoft.NET\Frameworkフォルダにv3.5.60905というフォルダがあります。また、アセンブリとしてはSystem.Core.dll(LINQ to Objects)やSystem.AddIn.dll(Managed Addin Framework)などが含まれているようです。

しかしながら、その他についてはほとんどVisual Studio 2005のままといった感じです。ロゴは一応"Orcas"になっています。

f:id:Yamaki:20061006104005p:image

2006年10月05日(木曜日)

Mouse Gestures for Internet Explorer

マウスを右クリックしながら左や右などにマウスを動かすことで、割り当てられたWebブラウザのコマンドを実行するマウスジェスチャーはてなダイアリーのキーワードにも書いてありますが、あまりに便利なゆえに中毒性が高い機能です。

私もマウスジェスチャー中毒者の一人なのですが、残念ながらInternet Explorer 7にこの機能は搭載されていません。ですが、アドオンとしてマウスジェスチャーをIEに提供されている方がいます。

Mouse Gestures for Internet Explorer

上記のページからインストーラーやソースコードをダウンロードすることができます。

IE7にも対応しているようですが、Vistaには対応していないようで普通にIE7を起動するとマウスジェスチャーは動きません。Vistaでは、管理者権限でIE7を起動することで一応使用することはできるようです。ただし、あまりはやくマウスジェスチャーを使うとIE7が落ちてしまいますので、注意してください。


なお、Mouse Gestures for Internet Explorerは、CodeProjectのほうでも詳しく解説されています。

no title

2006年10月04日(水曜日)

SendToフォルダの場所

こちらのblogからです。

Page not found | WindowsConnected


Windows XPのときは、SendToフォルダが隠しフォルダとして下記のような場所にありました。

\Documents and Settings\[ユーザー名]\SendTo

また、「ファイル名を指定して実行」で「SendTo」と入力すると、SendToフォルダが開くようにもなっていました。


Windows Vistaでは、各ユーザー毎の情報がDocuments and SettingsフォルダからUsersフォルダへと変わりました。ですが、隠しフォルダを表示するように変更しても、「\Users\[ユーザー名]\」の下にSendToフォルダはありません。Windows VistaのSendToフォルダは、下記の場所になっているようです。

\Users\[ユーザー名]\AppData\Roaming\Microsoft\Windows\SendTo

かなり深いところにありますね。

ところが、「ファイル名を指定して実行」で「SendTo」と入力すると「\Users\[ユーザー名]\SendToにアクセスできません。」というメッセージが表示されてしまいます。これはRC1で確認したものですが、はたしてどちらの場所が本当なのでしょうか。

2006年10月03日(火曜日)

Markup Extensions

以前の投稿で書きましたが、XAMLでは各エレメントのプロパティがString型以外の場合には、TypeConverterによって文字列から必要な型の値やクラスのインスタンスが生成されて設定されるようになっています。

ところが、このTypeConverterを使う方法では対応できない場合あがあります。それは、すでに定義されているオブジェクトをプロパティの値として設定したい場合です。例としては、すでに配置されているほかのエレメントやそのプロパティ、定義されたリソースなどがあるかと思います。

このために用意されている機能として、XAMLにはMarkup Extensionsというものがあります。

no title

いくつか用意されているMarkup Extensionsで一番よく見かけるのがBindingStaticResourceです。

Bindingについては、川西さんのblogで紹介されていますのでこちらを見るとどのようなものかわかるかと思います。

Windows Presentation Foundation "Property Binding" – 川西 裕幸のブログ

ここでは、StaticResourceを使う場合を紹介したいと思います。


XAML

<Window x:Class="Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="StaticResourceSample" Height="300" Width="300"
    >
 
  <Window.Resources>
    <RotateTransform x:Key="Naname" Angle="45" CenterX="25" CenterY="25"/>
    <SolidColorBrush x:Key="MyBrush" Color="Gold"/>
  </Window.Resources>
 
  <StackPanel Orientation="Horizontal" Height="70">
    <Button Margin="10" Content="Button1" RenderTransform="{StaticResource Naname}"/>
    <Button Margin="10" Content="Button1"/>
    <Button Margin="10" Content="Button1" RenderTransform="{StaticResource Naname}" Background="{StaticResource MyBrush}"/>
    <Button Margin="10" Content="Button1" Background="{StaticResource MyBrush}"/> 
  </StackPanel>
 
</Window>


f:id:Yamaki:20061003142038p:image


最初の部分ではTransformとBrushをリソースとしてあらかじめ定義しています。ボタンのRenderTransformプロパティとBackgroundプロパティに、Markup ExtensionsのStaticResourceを使って定義されたオブジェクトを設定しています。Markup Extensionsは中かっこ(カーリーブラケット)でくくります。

Windows Vista RC2はbuild 5743で今週の金曜日にリリースされる?

Page not found | IT Pro

上記のページによると、ないと言われていたRC2はbuild 5743で今週の金曜日にリリースされると見られているようです。RC2はRTM前の最後のプレリリースビルドで、ベータテスター、MSDN、TechNet、そしてランダムに選ばれるカスタマープレビュープログラムメンバーに提供されるとのことです。

それにしても、最近新しいビルドが提供される間隔があまりに短くて、毎回インストールするのはしんどいですね。