のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:126,368,550人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレMicrosoft Silverlight その7

    silverlight スレッド一覧へ / silverlight とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - 2104 + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    701 : デフォルトの名無 - 2011/02/13(日) 04:25:03 (+3,-29,-44)
    感だけどシリアル保存用のpublicクラス作ってそのクラスを使って保存用データを一旦作って
    そいつを渡してみる
    確かシリアライズってpublicクラスでプロパティなんかもpublicじゃないと使えなかったような
    702 : デフォルトの名無 - 2011/02/13(日) 04:28:29 (+2,-30,-157)
    おっと自分の質問忘れるところだった

    <UserControl>
    <Canvas>
    <my:MyCanvas>
    </my:MyCanvas>
    </Canvas>
    </UserControl>

    MyCanvasが持ってるスライダーの値を使ってCanvasのスケールを操作したい場合の
    バインディングってどう書けばいいんだろう

    <ScaleTransform ScaleX="{Binding Path=Value,ElementName=[ここがわからん]}"/>
    703 : デフォルトの名無 - 2011/02/13(日) 04:53:39 (+4,-30,-156)
    >>700
    IsolatedStorageSettings クラス
    分離ストレージにキーと値のペアを格納する Dictionary<TKey, TValue> を提供します。

    SiteSettings.SaveはiniファイルやCookieに相当する、
    [AttribName: value]
    形式の連想配列で表現できるようなデータを格納するクラスだから。
    どんなデータを保存するか良く考えよう。
    編集中のドキュメントを保存するならSystem.IOを使う。

    あとデータメンバにインスタンス参照を含むようなものはシリアライズが難しいから、
    それを文字列として表現できるかよーく考えよう。
    704 : デフォルトの名無 - 2011/02/13(日) 04:58:19 (+19,-30,-79)
    >>702
    そこはドキュメント通りなら以下の通り。
    バインド方向にもよるだろうけど。
    > 対象となる要素の Name プロパティまたは x:Name 属性の値。

    <Slider x:Name="scaleSlider"/>
    ...
    <ScaleTransform ScaleX="{Binding Path=Value,ElementName=scaleSlider}"/>
    705 : デフォルトの名無 - 2011/02/13(日) 05:41:54 (+69,+29,-161)
    >>700
    そのクラスおよび全ての基底からシリアライズできない型のメンバを排除する
    具体的には、

    1. シリアライズできないメンバを削除orシリアライズ可能な型に置き換え
    2. クラスにDataContract属性を、シリアライズできるメンバだけにDataMember属性を付ける

    なんだが、シリアライズするならモデルだろうからUIElement持っているのがおかしい
    あ、自前のクラスでなくて、シリアライズできないものを派生しているのは論外だから
    706 : デフォルトの名無 - 2011/02/13(日) 11:56:46 (+41,+4,-69)
    >>704
    MyCanvasというのがユーザーコントロールの場合はどうも無理ぽいですね・・・

    しかしバインディングで対処できる箇所を書き換えてますがコードが減る減るw
    707 : デフォルトの名無 - 2011/02/13(日) 13:12:46 (+17,-30,-78)
    Binding.Converterで変換する際に一つ外部から要因を与えたい場合はどうすればいいのでしょうか?

    double A 変換したい数値
    double B Aを変換の際にかけたい数値

    double C Binding.Converterの変換結果

    Bはスケールなのでユーザーの操作で数値が変わる
    708 : デフォルトの名無 - 2011/02/13(日) 14:19:55 (+4,-29,-8)
    VMで何でも出来るんだから
    Binding.Converterってあんまり出番ない気がするけど気のせい?
    709 : デフォルトの名無 - 2011/02/13(日) 14:28:01 (+8,-30,-56)
    >>707
    リソース中に
    <XxxConverter x:Key="xxx" B="111" />
    って書いて、こいつを {StaticResource} で読めばいいんでは。
    (XxxConverter 作るときにpublicなプロパティBを定義しとく)

    >>708
    それはそれでめんどくさいけどもね。
    管理しないといけないPropertyChangedの量増えるし。
    710 : デフォルトの名無 - 2011/02/13(日) 15:17:19 (+3,-30,-24)
    >>709
    <XxxConverter x:Key="xxx" B="111" />

    このBの部分をさらにバインドで処理可能ですか?
    711 : デフォルトの名無 - 2011/02/13(日) 16:04:09 (-1,-29,-25)
    >>710
    XxxConverterをDependencyObject継承させて作って、
    Bを依存関係プロパティにすればいけそう。
    712 : デフォルトの名無 - 2011/02/13(日) 16:40:54 (+3,-30,-168)
    バインディング系で便乗

    XAMLに
    <TextBlock Text="{Binding Path=Power, Mode=OneWay}" />
    があったとして、分離コードのほうでプロパティにPowerを含むオブジェクトをDataContext
    に突っ込む
    this.DataContext = 該当オブジェクト;

    こうすると、DataContextに突っ込んだオブジェクトのPowerが増減するたびにXAMLが表示して
    いるPowerも変化すると思うんだけどなんか間違ってる??
    どうも動きがOneTimeになってそうなんだよな~読み込み時の値しか適用されない
    713 : デフォルトの名無 - 2011/02/13(日) 16:50:38 (+31,-29,-5)
    INotifyPropertyChangedは実装してる?
    714 : デフォルトの名無 - 2011/02/13(日) 17:00:33 (+98,+29,-35)
    >>713
    なるほど、そんなことをしないといかんのか。
    しかしこれプロパティがいっぱいあるクラスだとかなり大変じゃない?
    715 : デフォルトの名無 - 2011/02/13(日) 17:13:58 (+76,+29,-69)
    >>714
    ツール化してる人もいるね

    でもデータ保持クラスに決まった記述さえしてしまえば
    あとは勝手にデータを参照更新してくれるんだから楽をするための
    苦労と思えば・・・

    コードをしこしこ書いてバグで悩むよりよっぽどいい
    716 : デフォルトの名無 - 2011/02/13(日) 17:23:11 (-2,-30,-33)
    依存プロパティじゃなくてINotifyPropertyChangedを実装するのは
    DependencyObjectの継承を避けるため?
    717 : デフォルトの名無 - 2011/02/13(日) 17:37:07 (+7,-30,-94)
    >>706
    MyCanvasが公開しているはずのスライダー値のプロパティにバインドするだけじゃないの?
    ユーザーコントロールの子コントロールに外部からアクセスしようとか阿呆の所業

    >>707
    OneWayならMultiBindingで可能だけど、逆方向も必要ならVMの仕事だろうな
    例えば、getter, setterにC=A*B, A=C/Bを考えている場合など
    718 : デフォルトの名無 - 2011/02/14(月) 13:37:30 (+57,+29,-32)
    >ユーザーコントロールの子コントロールに外部からアクセスしようとか阿呆の所業
    うお・・・できないのか・・・
    名前さえ付けとけば見えると思ったのにw
    719 : デフォルトの名無 - 2011/02/14(月) 17:26:34 (+57,+29,-3)
    出来なくはないがめちゃくちゃになりそうではないか・・・
    720 : デフォルトの名無 - 2011/02/14(月) 22:38:46 (+89,+29,-17)
    そんなユーザーコントロールの意義を真っ向から否定するようなことするくらいなら、
    最初からユーザーコントロールなんて作らなければ良いと思う
    721 : デフォルトの名無 - 2011/02/14(月) 23:00:54 (+64,-30,+0)
    >>720
    バインディングでコード量が減ったのでユーザーコントロールに分けてたのを
    元に戻すことにしましたw

    バインディング使うとほんとコード量減るw

    チェックボックスの関連で質問が・・・
    1) 起動して何もデータ追加なし
    2) 制御点1個の曲線を追加
    3) 2)で追加した曲線の制御点を移動
    4) 2)で追加した曲線の塗りつぶしをONにする
    5) マーカーどれでもいいので触ってみる
    質問したいのは4)で塗りをONにするためのチェックボックスにチェックをつけると
    FillCheckBox_Checkedイベントで画面の更新をしてるんだけど
    同時にバインドしてあるデータの更新も期待してるんだけど遅れるのか4)で
    チェックしたのに色が塗られない
    でも5)のようにマーカーを移動するとバインドしてあるデータの更新は行われてるので
    塗りが反映される
    何か対策する方法は無いかな?
    WPFとSilverLightではUpdateSourceTriggerの指定可能な項目にも違いがあって
    PropertyChangedが無いようだし
    722 : デフォルトの名無 - 2011/02/15(火) 03:16:57 (+64,+29,-24)
    フリーのカラーピッカーってないんですかね?
    無いのなら作ろうかと思うんですが需要あるかな?
    723 : デフォルトの名無 - 2011/02/15(火) 05:09:43 (+45,-29,-26)
    >>722
    ライセンスはMs-PL
    http://silverlightcontrib.codeplex.com/wikipage?title=Feature%20Overview&referringTitle=Home&ANCHOR#ColorPicker

    自分は厳密な色空間でのカラーピッカーがほしいから
    それは自作しようと思っている。
    724 : デフォルトの名無 - 2011/02/15(火) 07:59:05 (+68,+29,-16)
    >>723
    厳密ってのがなにかよくわからんがHSVなら一応そのアドレスのもなってね?
    円形がいいってのならそれはだめだろうけど
    725 : デフォルトの名無 - 2011/02/15(火) 08:33:31 (+11,-29,-10)
    >>724
    デバイス依存じゃなくて物理量定義のやつ。
    AdobeRGBとかxyYとかL*a*b*とか。
    726 : デフォルトの名無 - 2011/02/15(火) 14:20:53 (+0,-29,-4)
    >>725
    それもMs-PLで公開してくれるのかな?
    727 : デフォルトの名無 - 2011/02/15(火) 14:33:40 (+57,+29,-5)
    へーこんなライセンスあるのか
    http://www.microsoft.com/japan/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx
    Ms-PLなら使わせてもらおうw
    勉強はしたけどw
    728 : デフォルトの名無 - 2011/02/15(火) 15:45:11 (+62,+29,-95)
    HSVのカラーピッカーってHを変えたら256x256回も毎度計算するんだろうか?
    起動時に計算してプールするにしても無駄にメモリと時間食いそうだし

    一般的な3DCGの頂点カラーさえ使えればポリゴン2枚で正方形作って
    四隅の色だけ計算して後はピクセルシェーダーに担当させればよさそうなんだけど
    SLってその辺どうなんだろ?
    729 : デフォルトの名無 - 2011/02/15(火) 16:35:02 (+0,+0,+0)
    Sliderについてなんですが率直にいうとバグがありませんか?
    上でもどなたか質問してるようですが、ValueChangedイベントを設定するとSLアプリの
    読み込み待ち画面から先にすすみません

    <UserControl>
        <Canvas>
            <Rectangle/>
            <Canvas>
                <TextBlock/>
                <TextBlock/>
                <Slider/>
                <TextBlock/>
                <TextBlock/>
                <Slider/>
                <TextBlock/>
                <TextBlock/>
                <Slider/>
                <TextBlock/>
                <TextBlock/>
                <Slider/>         ←ここのValueChangedの関係でおかしくなる
            </Canvas>
        </Canvas>
    </UserControl>
    730 : デフォルトの名無 - 2011/02/16(水) 01:37:04 (-1,-29,-13)
    Silverlight 4アップデート出たね
    731 : デフォルトの名無 - 2011/02/16(水) 05:55:17 (+55,+27,-35)
    Silverlightで作った物をアップするのにどこ使ってますか?
    xapに対応したところってあんまり無いような・・・
    732 : デフォルトの名無 - 2011/02/16(水) 06:07:15 (+12,-22,-22)
    MIMEが登録されてなくても同じドメインからHTMLで呼び出す分には使えたと思うけど
    733 : デフォルトの名無 - 2011/02/16(水) 06:14:41 (+5,-29,-3)
    html埋め込みでxreaは行けるよ
    734 : デフォルトの名無 - 2011/02/16(水) 06:40:09 (+62,+29,-71)
    Silverlightのソフトウェア・シェーディングは意外なほどサクサク動いてくれたけど
    Moonlightはもっと踏み込んで、シェーダにハードウェア・アクセレーションが効くらしい…。
    http://www.infoq.com/jp/news/2010/11/Mono-GPU

    あっちも独自の進化をしつつ頑張ってるな。
    735 : デフォルトの名無 - 2011/02/16(水) 06:53:05 (+18,-29,-61)
    >>732
    silverlightそのものは一応呼び出してるんだけど真っ白なんだよね
    右クリックするとsilverlight(S)ってでるので一応は読み込めてるんだと思う

    >>733
    それってxamlをhtml内に入れるだけってやつ?
    736 : デフォルトの名無 - 2011/02/16(水) 09:15:54 (-6,-29,-1)
    俺は無料VPSかな
    737 : デフォルトの名無 - 2011/02/16(水) 10:25:51 (+98,+29,-39)
    ピクセルシェーダはJITコンパイルでもやってるのかな
    ベクトル化は当然としても、シェーダのバイトコードをインタプリタ実行してる割には速すぎる気が
    738 : デフォルトの名無 - 2011/02/16(水) 17:43:41 (+52,-4,-2)
    >735
    ジオでOK
    739 : デフォルトの名無 - 2011/02/16(水) 21:04:42 (+58,+23,-21)
    >>738
    ありがとう
    拡張子偽装しないとEZアップロードできないけど
    その辺を対策すればあっさり動いた
    740 : デフォルトの名無 - 2011/02/16(水) 23:41:04 (+46,-29,-22)
    >>737
    何らかの特別扱いはしてるだろうね。

    http://kodierer.blogspot.com/2009/08/silverlight-3-writeablebitmap.html
    WriteableBitmapの10倍速い。
    しかもマルチコア環境だと自動で並列化してくれる。
    741 : デフォルトの名無 - 2011/02/17(木) 00:40:13 (+81,+29,-75)
    >>737
    Silverlightってコンパイル済みのシェーダーしか読めなくなかったっけ?

    >>740
    まあ、ピクセルベースで、ふちのギザギザも取らないでいい、
    毎フレーム自分で計算してドットを埋めてくってのでいい
    っていう条件下での話よ<10倍速い。
    742 : デフォルトの名無 - 2011/02/17(木) 06:28:07 (+31,-30,-43)
    KeyDownのテストをやろうと思ってコード書いたんだが
    どうもFocusが取れてないようでKeyDownイベントが発生しない
    んだけど特別なやり方ってあるのかな?

    コンストラクタに
    this.Focus();
    と書いてもGotFocusイベントすら発生しない・・・
    743 : デフォルトの名無 - 2011/02/17(木) 08:09:29 (+86,+30,+0)
    744 : デフォルトの名無 - 2011/02/17(木) 09:35:28 (+13,-29,-94)
    >>741
    コンパイル済みのシェーダは中間言語だよ
    .NETのCILと同じように、実行時にGPUのネイティブコードに変換される
    Silverlightの場合はCPUで動くネイティブコードに変換されてると思われる
    745 : デフォルトの名無 - 2011/02/17(木) 15:38:20 (+127,+27,-25)
    mvvm実装疲れる
    奥が深い分野だよね
    746 : デフォルトの名無 - 2011/02/17(木) 19:12:23 (+111,+29,-2)
    >>743
    ありがとうございます
    うまくいった・・・

    >>745
    まー慣れだよね
    747 : デフォルトの名無 - 2011/02/17(木) 20:59:02 (+64,-29,-48)
    Expression BlendはMVVMだけどコードビハインド使いまくってるね
    Prismのドキュメントにもあったが、ビューの特定の実装に依存するような処理は
    素直にViewに書くべきなんだろうな
    748 : デフォルトの名無 - 2011/02/17(木) 23:27:07 (+57,+29,-24)
    ふー
    html関連を普段やらないので疲れた・・・
    本当はブログにさくっと貼れるとよかったんだが
    749 : デフォルトの名無 - 2011/02/18(金) 00:51:59 (+77,+29,-38)
    >>745>>746
    MVVMのスタイルに従うと、やるべき事が色々と事前に判っちゃうっつーか、
    判っておかないと下手に取りかかれないから、面倒だけど作業が計画的になる
    というメリットはあるよね。
    750 : デフォルトの名無 - 2011/02/18(金) 08:28:55 (+71,+29,-27)
    実行時にクラッシュすることがたまにあるんだけど調査用のログとかそういうのって
    SLの場合どう拾えばいいんだろう?
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / silverlight スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - 2104 + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について