ツイート

Daizen Ikehara

インフラジスティックス・ジャパンにてデベロッパー エバンジェリストとして活動しています。

News

[Mobile][jQuery] [WP] NetAdvantage 2012 Volume1 最大 80% OFF!

昨日のエントリでもお伝えしておりましたが、NetAdvantage 2012 Volume1 がリリースされています!

[Silverlight] NetAdvantage 2012 Volume1 リリース! 並びに XAML 製品の変更について [WPF] [XAML]

トライアル版ダウンロードはこちら

このリリースでは単体製品である、NetAdvantage for jQuery, NetAdvantage for Windows Phone の価格の改訂が行われています。

製品名

旧価格(税込)

新価格(税込)

NetAdvantage for JQuery

99,750 円

57,750 円

NetAdvantage for Windows Phone

99,750 円

18,900 円

NetAdvantage for jQuery

NetAdvantage for Windows Phone

jQuery, Windows Phone 開発をお考えの場合、よりお手頃なお値段 (最大 80% OFF) でお求めいただけることになりました!
是非ご検討ください。

プレスリリース

NetAdvantage 製品ラインナップ

トライアル版ダウンロードはこちら

[Silverlight] NetAdvantage 2012 Volume1 リリース! 並びに XAML 製品の変更について [WPF] [XAML]

お待たせいたしました! 本日、NetAdvantage の最新バージョンである、2012 Volume1 がリリースされました! このリリースでは Windows 8 を見据えた Metro テーマの提供やタッチ対応など、タブレット、モバイルへの対応拡充の第一歩となるリリースです。

OverviewHeader

プレスリリース

NetAdvantage 製品ラインナップ

トライアル版ダウンロードはこちら

また、XAML ユーザーにとっては大きな変更が入りました。以前までは業務用アプリケーション向けコンポーネントを含んでいた Line of Business (LOB) というパッケージと、データ視覚化アプリケーション向けコンポーネントを含んでいた Data Visualization (DV) というパッケージを提供しておりましたが、今回のリリースではそれらが統合され、NetAdvantage for WPF, NetAdvantage for Silverlight となり、全てのコンポーネントをご利用いただけるようになりました!

image

Metro テーマ

image

image

image

是非、お試しください!

トライアル版ダウンロードはこちら

[jQuery] NetAdvantage for jQuery 2012 Volume1 新機能 [HTML5]

昨年後半に NetAdvatage の 2011 Volume2 をリリースしていましたが、新バージョンのリリースが近づいています!
今回は NetAdvantage for jQuery 2012 Volume1 の新機能をいくつかご紹介します。(完全な新機能リストについてはリリースをお待ちください。)

HTML5 jQuery チャート コントロールの正式リリース (RTM)

2011 Volume2 では CTP 版としてリリースしていた HTML5 jQuery チャートがいよいよ正式リリースとなります。以前から XAML プラットフォームで提供している、xamDataChart をベースに高機能・高速チャートとして登場です。

12.1 Chart types key features

アニメーション効果を設定できる、モーションフレームワークも搭載しています。

image

モバイル デバイス対応コントロール

jQuery Mobile を利用したモバイルデバイスに最適化されたコントロールも新たに追加されました!

リスト

image

レーティング

image

まだまだたくさんありますし、Windows 8 を見据えたアップデートもありますが、今回はここまで

その他いろいろな jQuery コントロールを提供していますので、現行バージョンの試行ならびに新リリースをお待ちください!

NetAdvantage トライアル版

トライアル版ダウンロードはこちら

さて、弊社代表の東の Blog でもお伝えしておりますが、我々インフラジスティックスは 5/9 – 11 と スマートフォン&モバイルEXPO に出展します。そこでは今回の jQuery を含めた次期リリースの 2012 Volume1 を展示する予定ですので、会場までお越しの際は是非、お立ち寄りください!

[WPF] XamDockManager - コントロールに組み込まれたコマンド [Tips]

久々に WPF でのネタで一つ。

NetAdvantage for WPF で提供しているコントロールでは色々なコマンドが予め組み込まれています。例えば xamDockManagerの各ペインの閉じるボタン

image

このボタンをクリックするとペインを閉じることになりますが、この「閉じる」という機能がモジュールとして用意されています。

オンラインヘルプ – ContentPaneCommands

このコマンド群を使うことで独自の UI からコントロールを操作することが可能になります。

例えばコンテンツペイン内部に配置したユーザー コントロールのボタンからコンテンツを閉じたい場合、次のように実装します。

<UserControl x:Class="XamDockManager.Views.View1"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/
		markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" 
             d:DesignHeight="200" d:DesignWidth="200" 
             xmlns:igDock="http://infragistics.com/DockManager">
    <Grid>
        <Button Width="100" Height="30" 
                Content="閉じる" 
                Command="{x:Static igDock:ContentPaneCommands.Close}" />
    </Grid>
</UserControl>

デザイン時の UI はこんな感じ。ボタンが置かれているだけですが、デザイン時は ContentPane  の内部に配置されていないので実行不可と判断されています。

image

ContentPane に配置して実行するとちゃんと実行可能、そしてペインを閉じることができています。

image

image

他にも色々なコマンドが用意されていますので活用いただければと思います。

サンプルの実行には NetAdvantage for WPF が必要です。

サンプル ソリューション

NetAdvantage トライアル版

トライアル版ダウンロードはこちら

Posted: 04 Apr 2012, 16:10 | 1 Comments
Filed under: , , ,
VS11 Beta 対応サービスリリースが公開されています!

2/29 に Windows 8 Consumer Preview と共に公開された、Visual Studio 11 Beta に対応した、サービスリリースが順次公開されています。

日本語版サービス リリースについては下記でご案内しています。

インストール方法は至って簡単なので、早速、本日アナウンスされた WPF 版、 Silverlight 版を入れてみました。

まずは下のボタンから製品インストーラーをダウンロードします。

トライアル版ダウンロードはこちら

このリンクからは プラットフォーム インストーラーがダウンロード可能です。

image

このインストーラーをクリックすると、キー入力画面にが表示されます。ライセンスを持っていない場合はそのままクリック

image

Silverlight 製品並びに WPF 製品に関しては本日のパッチで VS11 に対応していますので、そちらを選択しました。

image

ライセンスへの同意を行い、、、

image

image

最後に [最新サービス リリースのインストール] にチェックが入っていることを確認します。

image

たったこれだけ。

image

コントロールの配置なんぞおこなってみました。

image

いくつか既知の問題が判明していますので、ご注意ください。

  • VS11 対応の WPF LOB/WPF DV 製品サービスリ リースをインストールした後は最初の起動時に自動的にツールボックスがアップデートされます。
    • もし、クラッシュしてしまった場合、手動でツールボックスに追加する必要があります。
  • VS11 対応の Silverlight LOB/Silverlight DV 製品サービス リリースをインストールした場合は手動でツールボックスに追加する必要があります。
  • VS11 からプロパティ グリッドが新しくなっています。もしプロパティ エディターやコレクション エディターに不具合があった場合、Visual Studio 11 forums (英語) にご報告をお願いします。

また、通常通り、キーとダウンロードからパッチのみダウンロードいただくことも可能です。

ダウンロード

サポートについて (要注意)

Visual Studio 11 は現在 Beta リリース状態であるため、今後、仕様が変更される可能性があります。インフラジスティックスとしては Visual Studio 11 の製品リリース後に NetAdvantage 製品の正式サポートを開始いたします。そのため、現時点において弊社サポートにご質問いただいた場合に、問題の解決やご回答を保証いたしかねることにご留意ください。正式なサポートを開始するまでは上記の Visual Studio 11 forums (英語) をご利用いただくようにお願いいたします。

[Win] Timeline で予定にホバーさせた際に情報を表示させる–UIElement [Tips]

NetAdvantage for Windows Forms では Presentation Layer Framework (PLF) というフレームワーク上でコントロールが動作しています。この PLF ではコントロールの各パーツが UIElement という基底クラスから派生しておりいろいろな局面でこの UIElement を取得し、処理を行うことが可能です。

今回は一例として、マウスがこの UIElement 要素に入った・抜けた際のイベント、MouseEneterElement / MouseLeaveElement イベントを活用し、UltraTimeLineView コントロールの予定にホバーさせた際に別のラベルコントロールで予定の内容を表示させるロジックを組み込みます。

元のサンプルは以下のエントリでご紹介したものを利用しています。

まずは予定情報を表示させるためのラベルを追加し、Load イベントでランダムに予定を追加するコードを実装します。

image

private void Form1_Load(object sender, EventArgs e)
{
    // 省略...
 
   // ランダムに予定を作成
    Random rand = new Random(DateTime.Now.Millisecond);
    double diff = 0;
            
    this.ultraCalendarInfo1.Appointments.AddRange(
        Enumerable.Range(1, 10).Select(i =>
            new Appointment(DateTime.Now.AddMinutes(diff = rand.Next(120)), 
                DateTime.Now.AddMinutes(diff + rand.Next(30,120)))
            {
                        
                Subject = "予定" + i.ToString(),
                Owner = 	this.ultraCalendarInfo1.Owners[
			rand.Next(1, this.ultraCalendarInfo1.Owners.Count)],
            }).ToArray<Appointment>());

}

続けて、UltraTimeLineView の MouseEnter / MouseLeave イベントハンドラーをそれぞれ設定します。
どの要素に入った・抜けたかを見てみましょう。

private void ultraTimelineView1_MouseEnterElement(object sender, 
	Infragistics.Win.UIElementEventArgs e)
{
    // マウス ポインタがどの UIElement 上に入っているか取得
    Debug.WriteLine("Enter\t" + e.Element);
}

private void ultraTimelineView1_MouseLeaveElement(object sender, 
	Infragistics.Win.UIElementEventArgs e)
{
    // マウス ポインタがどの UIElement から抜けたか取得
    Debug.WriteLine("Leave\t" + e.Element);
}

この状態で実行するとデバッグ出力には現在のマウス位置に存在している要素クラスが出力されます。

image

予定オブジェクトでは、Infragistics.Win.UltraWinSchedule.TimelineView.AppointmentUIElement が表示要素として作成されるので、毎回のイベント発生時にチェックを行うことで特定の UI 要素で処理を追加することができます。

それぞれのイベントで処理を追加すると・・・

private void ultraTimelineView1_MouseEnterElement(object sender, 
    Infragistics.Win.UIElementEventArgs e)
{
    // マウス ポインタがどの UIElement 上に入っているか取得
    Debug.WriteLine("Enter\t" + e.Element);

    // AppointmentUIElement の場合 
    if (e.Element is 
        Infragistics.Win.UltraWinSchedule.TimelineView.AppointmentUIElement)
    {
        // Appointment オブジェクトを取得
        var apmntUIE = e.Element as 
            Infragistics.Win.UltraWinSchedule.TimelineView.AppointmentUIElement;
        var appoint = apmntUIE.Appointment;
        this.ultraLabel4.Text =
            appoint.Owner.Name + "\t" + 
            appoint.Start.ToShortDateString() + " - " + 
            appoint.End.ToShortDateString() + "\t" + 
            appoint.Subject;
    }
}

private void ultraTimelineView1_MouseLeaveElement(object sender, 
    Infragistics.Win.UIElementEventArgs e)
{
    // マウス ポインタがどの UIElement から抜けたか取得
    Debug.WriteLine("Leave\t" + e.Element);

    if (e.Element is 
        Infragistics.Win.UltraWinSchedule.TimelineView.AppointmentUIElement)
        this.ultraLabel4.ResetText();
}

実行すると、マウス ポインタの位置に合わせて右上のラベル表示が切り替わります。

image

この手法は UltraGridUltraDockManager など多くのコントロールで活用することができます。通常のイベントでは取得できないオブジェクトで何か処理を行いたい場合下記の注意点をご確認の上、是非お試しください。

注意点

UIElement はコントロールの各パーツを表現するクラスであるため、MouseEnterElement / MouseLeaveElement イベントの発生頻度はかなり高くなります。それぞれのイベントでコスト(処理時間)が大きいコードが記述されているとパフォーマンスの低下につながります。ご注意ください。

サンプルの実行には NetAdvantage for Windows Forms トライアル版が必要です。

サンプルソリューション

NetAdvantage for Windows Forms トライアル版

トライアル版ダウンロードはこちら

[Win] Timeline に予定をマウス ドラッグで追加する その2 - ドラッグ処理の追加 [Tips]

前回 NetAdvantage for Windows FormsWinTimelineView に複数のオーナーを表示させるところまで準備しました。

今回はドラッグ処理の実装を行います。

ドラッグ開始

まず、UltraLabel 上で MouseDown を行った際にドラッグを開始させます。

private void ultraLabel1_MouseDown(object sender, MouseEventArgs e)
{
    UltraLabel label = sender as UltraLabel;
    if (label != null)
        // ドラッグ処理開始
        label.DoDragDrop(label.Text, DragDropEffects.Copy);
}

ドラッグ処理

今回は無条件に WinTimeLineView にドラッグオブジェクトが入ってきた際にドロップを許可します。本来であればここでドラッグされているオブジェクトの判定を行う必要があります。

private void ultraTimelineView1_DragEnter(object sender, DragEventArgs e)
{
    e.Effect = DragDropEffects.Copy;            
}

ドロップ処理

ドロップされた座標からオーナーと、時間を取得します。

private void ultraTimelineView1_DragDrop(object sender, DragEventArgs e)
{
    // ドロップされた座標
    Point loc = new Point()
    {
        X = e.X - this.ultraTimelineView1.Left - this.Left,
        Y = e.Y - this.ultraTimelineView1.Top - this.Top
    };
    // 座標からオーナーを取得
    var owner =
        this.ultraTimelineView1.OwnerFromPoint(loc);
    // 座標から時間を取得
    var dateTime =
        this.ultraTimelineView1.DateTimeFromPoint(loc);

    if (owner != null && dateTime.HasValue)
    {
        // 予定を追加
        this.ultraCalendarInfo1.Appointments.Add(
            new Infragistics.Win.UltraWinSchedule.Appointment(
                dateTime.Value, dateTime.Value.Add(
	  	this.ultraTimelineView1.PrimaryInterval.NormalSpan))
              	{
	  		Owner = owner,
		              Subject = e.Data.GetData("Text").ToString()
	              });
    }

}

今回のポイント

今回のポイントは座標からオーナや時間帯を取得する ~FromPoint メソッドです。このメソッドを利用すると色々な情報を取得することが可能です。

AppointmentFromPoint

座標から予定を取得
DateTimeFromPoint 座標から日時を取得
OwnerFromPoint 座標からオーナーを取得

サンプルの実行には NetAdvantage for Windows Forms トライアル版が必要です。

サンプルソリューション

NetAdvantage for Windows Forms トライアル版

トライアル版ダウンロードはこちら

[Win] Timeline に予定をマウス ドラッグで追加する その1 - 複数オーナの表示 [Tips]

今回からスケジュールを横時間軸で表示する NetAdvantage for Windows FormsWinTimelineView を使い、マウス ドラッグで予定を追加する方法についてご紹介します。今回は実行結果と初期設定まで~

初期設定

まず、WinTimeLineView と カレンダー情報を保持する、UltraCalendarInfo コントロールを追加します。

image

このサンプルでは上の色がついているラベルをドラッグし、新たに予定を作成します。複数人の予定を管理しているので、ロードイベントにてまずは前準備を

private void Form1_Load(object sender, EventArgs e)
{
    // オーナー表示数
    this.ultraTimelineView1.MaximumOwnersInView = 5;

    // ドロップ許可
    this.ultraTimelineView1.AllowDrop = true;

    // オーナー追加
    for (int i = 0; i < 5; i++)
    {
        this.ultraCalendarInfo1.Owners.Add(
            "オーナー" + (i + 1).ToString());
    }
            
    // UnassignedOwner を非表示
    this.ultraCalendarInfo1.Owners.UnassignedOwner.Visible = false;

    for (int i = 1; i < this.ultraCalendarInfo1.Owners.Count; i++)
    {
        this.ultraCalendarInfo1.OwnersIdea.Visible = true;
    }
    // 今日の日付が表示されるように設定
    this.ultraTimelineView1.EnsureDateTimeVisible(
        DateTime.Now);
}

このコードではオーナーの追加や表示設定、さらに今日の日付が必ず表示されるように設定しています。

実行結果

image

既にドラッグ処理を実装していますが、解説は次回へと・・・

サンプルの実行には NetAdvantage for Windows Forms トライアル版が必要です。

サンプルソリューション

NetAdvantage for Windows Forms トライアル版

トライアル版ダウンロードはこちら

[Win] チャートのインタラクション その3 - データポイントの追加 [Tips]

前回前々回ご紹介した、NetAdvantage for Windows FormsWinChart におけるインタラクション実装の解説です。

今回はチャート点ではないところでマウスクリックを行った際にデータポイントを追加するようにします。このような処理を行う場合、必要となるのが、

1. クリック際ののマウスの位置
2. データ点以外をクリックしたイベントの取得
3. マウスの位置における、 X 軸、 Y 軸の値

3 までわかればあとはデータソースへデータ点を追加することになります。

1. クリック時のマウスの位置

クリック時のマウスの位置をピンポイントで取得することが難しいため、MouseMove イベントでマウス移動時に現在の位置を取得するように設定します。

Point pos;
private void ultraChart1_MouseMove(object sender, MouseEventArgs e)
{
    pos = e.Location;
}

2. データ点以外をクリックした際のイベント

こちらは WinChart に Click イベントが用意されています。前回の ChartDataItemClicked イベントが発生している場合はこのイベントは発生しません。

3. マウス位置における、X 軸、Y 軸の値

ここが重要なポイントです。MouseMove イベントで取得した値はあくまでも WinChart コントロール領域における、X, Y 座標を示しており、実際の軸の値ではありません。しかし、WinChart で用意されている軸では IAdvanceAxis インタフェースが実装されており、このインターフェースを利用し座標から値へと計算することができます。

まず、軸オブジェクトを取得するため、チャート描画時に発生する、FillScreenGraph イベントをハンドルします。このイベントではチャートの各要素にアクセスすることができ、軸は FillSceneGraphEventArgs.Grid にそれぞれキーが “X”, “Y” と設定されています。

IAdvanceAxis axisX;
IAdvanceAxis axisY;

private void ultraChart1_FillSceneGraph(object sender, 
	Infragistics.UltraChart.Shared.Events.FillSceneGraphEventArgs e)
{
    if (axisX == null || axisY == null)
    {
        axisX = e.Grid["X"] as IAdvanceAxis;
        axisY = e.Grid["Y"] as IAdvanceAxis;
    }
}

そして、 2 の Click イベントでデータ点を追加します。

private void ultraChart1_Click(object sender, EventArgs e)
{
    // MapInverse メソッドを利用し、X軸、Y軸の値を計算し、追加
    chartData.Rows.Add(
        new object[]{ 
            axisX.MapInverse(pos.X), 
            axisY.MapInverse(pos.Y)});
}

活用いただければと思います。

サンプルの実行には NetAdvantage for Windows Forms のトライアル版が必要です。

サンプル

NetAdvantage for Windows Forms トライアル版

トライアル版ダウンロードはこちら

[Win] チャートのインタラクション その2 - データ ポイントの削除 [Tips]

前回ご紹介した、NetAdvantage for Windows FormsWinChart におけるインタラクション実装の解説です。

今回はデータ ポイント部分の削除について解説します。

まず、今回のデータは DataTable に X列、 Y列といった列構造を持った DataTableとして作られ、バインドされています。

DataTable chartData;
        
private void Form1_Load(object sender, EventArgs e)
{
    CreateChartData();
    this.ultraChart1.ChartType = 
	Infragistics.UltraChart.Shared.Styles.ChartType.ScatterChart;
    // データ作成
    this.ultraChart1.Data.DataSource = chartData;
    // X 値、Y値を示す列を指定
    this.ultraChart1.ScatterChart.ColumnX = 0;
    this.ultraChart1.ScatterChart.ColumnY = 1;
    this.ultraChart1.DataBind();
}

private void CreateChartData()
{
    chartData = new DataTable();
    chartData.Columns.Add("X", typeof(double));
    chartData.Columns.Add("Y", typeof(double));

    Random rand = new Random(DateTime.Now.Millisecond);
    for (int i = 0; i < 500; i++)
    {
        chartData.Rows.Add(new object[] { 
		rand.Next(-100, 100), rand.Next(-100, 100) });
    }
}

そして、WinChart では、チャート データ点をクリックした際に ChartDataItemClicked イベントが発生します。

イベントでは ChartDataEventArgs がイベント引数として渡され、データ ソースの行情報を取得することができます。

この情報を基にソースからデータそのものを削除してしまえば完成です。

private void ultraChart1_ChartDataClicked(object sender, Infragistics.UltraChart.Shared.Events.ChartDataEventArgs e)
{
    if(DialogResult.Yes == 
        MessageBox.Show("削除してよろしいですか?", 
        "確認", MessageBoxButtons.YesNo))
    {
        // データソースから削除
        chartData.Rows.Remove(chartData.Rows[e.DataRow]);
    }
}

ご活用ください!

サンプルの実行には NetAdvantage for Windows Forms のトライアル版が必要です。

サンプル

NetAdvantage for Windows Forms - ダウンロード

[Win] チャートのインタラクション [Tips]

今回は Windows Forms ネタで一つ。

NetAdvantage for Windows Forms では UltraChart というチャート コントロールが以前から提供されています。このコントロールでは、3D, 2D のいろいろなチャートの種類を表現できるようになっています。

image

image

image

今回、散布図において、表示点の削除と追加を行いたい。というお話があり、サンプルを作成しました。まずは実行結果をご覧ください。

初期表示から特定の点をクリック

image

削除

image

点ではない領域をクリックすると追加

image

サンプルの実行には NetAdvantage for Windows Forms のトライアル版が必要です。

サンプル

NetAdvantage for Windows Forms - ダウンロード

解説はまた次回にでも

[WP] NetAdvantage for Windows Phone コミュニティ プログラム登録アプリケーション – DietMemo [Community]

2011 年 7 月 25 日より開始をさせて頂いた NetAdvantage for Windows Phone コミュニティ プログラム登録アプリケーション、今回は Tagawa Software Engineering さんのアプリケーション DietMemo を紹介します。

DietMemo

ご本人によるリリース ノート

このアプリケーションでは NetAdvantage for Windows PhoneData Chart コントロールを用いて体重の履歴を表現されていらっしゃいます。私もこの冬は体重調整(!) に励んでいますが、早速こちらも使っていきたいと思います。みなさんも是非お試しください。

   

どしどしごアプリケーション登録の連絡をお待ちしております。

igjpwp7@infragistics.com

NetAdvantage for Windows Phone

[XAML] レーダー チャートを Silverlight で表現する [Tips]

今回もチャートでのネタから一つ、

とあるお人から、NetAdvantage for WPF LOB / Data Visualization, NetAdvantage for Silverlight LOB / Data VisualizationxamDataChart でレーダー チャートを実現できないかというお問い合わせをいただきました。

Excel のレーダー チャート

image

xamDataChart では同じような機能をラジアル シリーズというもので実現しています。

image

データをバインドし、表示させると・・・

image

このチャートで機能的な要件を満たすことが可能なのですが、軸線が円表示となってしまうため、若干違和感を感じるかもしれません。

今回はこのカスタマイズを行い、Excel 表現に近づけてみます。

まずは違和感を感じる円表示を非表示にするため、NumericRadiusAxisMajorStrokeCaregoryAngleAxis Stroke をそれぞれ Transparent(透明)、としました。

<ig:NumericRadiusAxis x:Name="nrAxis"
    MajorStroke="Transparent"
    MinimumValue="0"
    MaximumValue="10"
    CrossingValue="0"
    CrossingAxis="{Binding ElementName=naAxis}" />
<ig:CategoryAngleAxis x:Name="naAxis"
    CrossingAxis="{Binding ElementName=nrAxis}"
    CrossingValue="10"
    StartAngleOffset="-90"
    Label="{}{Label}" 
    Stroke="Transparent"
    ItemsSource="{Binding Path=Chart1Collection}">

image

更に最大値のひし形の大きさがわかるようにします。今回はシリーズをもう一つ追加し、最大値を持った表示を行います。併せて軸線とデータ線の区別をつけるため、太さ、表示方法を変更します。

ここまでの XAML

<ig:XamDataChart Name="xamDataChart1" >
    <ig:XamDataChart.Axes>
        <ig:NumericRadiusAxis x:Name="nrAxis"
            MajorStroke="Transparent"
            MinimumValue="0"
            MaximumValue="10"
            CrossingValue="0"
            CrossingAxis="{Binding ElementName=naAxis}">
        </ig:NumericRadiusAxis >
        <ig:CategoryAngleAxis x:Name="naAxis"
            CrossingAxis="{Binding ElementName=nrAxis}"
            CrossingValue="10"
            StartAngleOffset="-90"
            Label="{}{Label}"  
            Stroke="Transparent"
            ItemsSource="{Binding Path=Chart1Collection}">
    </ig:CategoryAngleAxis>
    </ig:XamDataChart.Axes>
    <ig:XamDataChart.Series>
        <!--実際のデータを表示するシリーズ-->
        <ig:RadialLineSeries 
            AngleAxis="{Binding ElementName=naAxis}"
            ValueAxis="{Binding ElementName=nrAxis}"
            ItemsSource="{Binding Path=Chart1Collection}"
            ValueMemberPath="Value"
            Thickness="4"/>
        <!--最大値を表示するシリーズ-->
        <ig:RadialLineSeries 
            AngleAxis="{Binding ElementName=naAxis}"
            ValueAxis="{Binding ElementName=nrAxis}"
            ItemsSource="{Binding Path=Chart1BaseCollection}"
            ValueMemberPath="Value" 
            MarkerType="None"/>
    </ig:XamDataChart.Series>
</ig:XamDataChart>

なんからしくなってきました!

image

サンプル (Silverlight 5)

NetAdvantage for WPF LOB / NetAdvantage for WPF Data Visualization

NetAdvantage for Silverlight LOB / NetAdvantage for Silverlight Data Visualization

[XAML] xamDataChart の軸ラベルにチェックボックスを追加する [Tips]

1/30 の弊社セミナーにご来場いただきましてありがとうございました!

無償セミナー 「その UI 開発、新時代を戦えますか?」

今回はデベロッパー サポート エンジニア の三田とジョイントセッションを行わせていただきました。

セミナー後にご来場された方から NetAdvantage for WPF LOB / Data Visualization, NetAdvantage for Silverlight LOB / Data VisualizationxamDataChart で表示しているラベルにチェックボックスを表示させて、チェックされた情報を管理されたいとのご質問を頂いたため、サンプルを作成してみました。

まずは、チャートにバインドするためのデータクラスに、チェック状態を記憶するプロパティを実装します。

using System.ComponentModel;
using Infragistics;

namespace xamDataChart_CheckBoxLabel
{
    public class CustomBarChartData
        : PropertyChangeNotifier
    {

        private int iD;
        public int ID
        {
            get { return iD; }
            set { iD = value;
            OnPropertyChanged("ID");
            }
        }
        

        private string label;
        public string Label
        {
            get { return label; }
            set { label = value;
            OnPropertyChanged("Label");
            }
        }

        private double dataValue;
        public double DataValue
        {
            get { return dataValue; }
            set { dataValue = value;
            OnPropertyChanged("DataValue");
            }
            
        }

        private bool isChecked;
        public bool IsChecked
        {
            get { return isChecked; }
            set { isChecked = value;
            OnPropertyChanged("IsChecked");
            }
        }
    }
}

ラベルのカスタマイズ自体はヘルプトピックのように簡単に行えます。

軸ラベル テンプレート

<ig:XamDataChart Name="xamDataChart1"
                    DataContext="{Binding Path=ChartDataCollection}"
                    HorizontalZoomable="True"
                    VerticalZoomable="True"
                    DefaultInteraction="DragPan"
                    HorizontalZoombarVisibility="Visible"
                    VerticalZoombarVisibility="Visible" 
                    DragModifier="Control" Grid.Row="1"
                    >
    <ig:XamDataChart.Axes>
        <ig:CategoryYAxis 
            x:Name="axisY" 
            ItemsSource="{Binding}">
            <ig:CategoryYAxis.Label>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <CheckBox IsChecked="{Binding Item.IsChecked, Mode=TwoWay}"
    Command="{Binding Source={StaticResource MainVM}, Path=RefreshFilterCommand}"
    CommandParameter="{Binding Source={StaticResource MainVM}}"
                                    />
                        <TextBlock Text="{Binding Item.Label}" />
                    </StackPanel>
                </DataTemplate>
            </ig:CategoryYAxis.Label>
            <ig:CategoryYAxis.LabelSettings>
                <ig:AxisLabelSettings  
                             
                    FontSize="11" Foreground="Black" 
                                        Location="OutsideLeft" 
                                        OpacityMask="{x:Null}" 
                                        Projection="{x:Null}" 
                                        TextDecorations="{x:Null}" />
            </ig:CategoryYAxis.LabelSettings>
        </ig:CategoryYAxis>
        <ig:NumericXAxis x:Name="axisX">
            <ig:NumericXAxis.ActualTickmarkValues>
                <ig:LinearTickmarkValues />
            </ig:NumericXAxis.ActualTickmarkValues>
        </ig:NumericXAxis>
    </ig:XamDataChart.Axes>
    <ig:XamDataChart.Series>
        <ig:BarSeries XAxis="{Binding ElementName=axisX}" 
                        YAxis="{Binding ElementName=axisY}"
                        ItemsSource="{Binding}"
                        ValueMemberPath="DataValue" >
        </ig:BarSeries>
    </ig:XamDataChart.Series>
</ig:XamDataChart>

実行結果はこちら。
チェック ボックスのチェック状態に合わせて、右側のリストが更新されるようにもしています。

image

サンプル ソリューション

NetAdvantage for WPF LOB / NetAdvantage for WPF Data Visualization

NetAdvantage for Silverlight LOB / NetAdvantage for Silverlight Data Visualization

[WP] NetAdvantage for Windows Phone コミュニティ プログラム登録アプリケーション – LT Timer [Community]

2011 年 7 月 25 日より開始をさせて頂いた NetAdvantage for Windows Phone コミュニティ プログラム登録アプリケーション、今回は kiyokura さんのアプリケーション, LT Timer を紹介します。

LT Timer

昨今のイベント、勉強会、セミナーで必ずと言っていいほど行われる Lightning Talk, 短い時間の中で自分の思いのたけをぶちまけるハラハラドキドキものの試みですが話す人自身はタイマーを見れないことが多いんです。なので特定時間でのバイブ機能がうれしいですね。

このアプリケーションでは NetAdvantage for Windows PhoneBullet Graph コントロールを用いて経過時間のインジケータとしてご利用いただいています。もともとは目標値に対する現在を表す指標表示のコントロールなのですが、いい感じにカスタマイズいただいています。

 

どしどしご連絡をお待ちしております。

igjpwp7@infragistics.com