のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,643,433人
昨日: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,-158)
おっと自分の質問忘れるところだった

<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,-157)
>>700
IsolatedStorageSettings クラス
分離ストレージにキーと値のペアを格納する Dictionary<TKey, TValue> を提供します。

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

あとデータメンバにインスタンス参照を含むようなものはシリアライズが難しいから、
それを文字列として表現できるかよーく考えよう。
704 : デフォルトの名無 - 2011/02/13(日) 04:58:19 (+17,-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 (+36,+0,-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,-26)
>>710
XxxConverterをDependencyObject継承させて作って、
Bを依存関係プロパティにすればいけそう。
712 : デフォルトの名無 - 2011/02/13(日) 16:40:54 (+3,-30,-169)
バインディング系で便乗

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,-34)
依存プロパティじゃなくて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,-106)
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,-36)
Silverlightで作った物をアップするのにどこ使ってますか?
xapに対応したところってあんまり無いような・・・
732 : デフォルトの名無 - 2011/02/16(水) 06:07:15 (+13,-21,-22)
MIMEが登録されてなくても同じドメインからHTMLで呼び出す分には使えたと思うけど
733 : デフォルトの名無 - 2011/02/16(水) 06:14:41 (+5,-29,-1)
html埋め込みでxreaは行けるよ
734 : デフォルトの名無 - 2011/02/16(水) 06:40:09 (+62,+29,-80)
Silverlightのソフトウェア・シェーディングは意外なほどサクサク動いてくれたけど
Moonlightはもっと踏み込んで、シェーダにハードウェア・アクセレーションが効くらしい…。
http://www.infoq.com/jp/news/2010/11/Mono-GPU

あっちも独自の進化をしつつ頑張ってるな。
735 : デフォルトの名無 - 2011/02/16(水) 06:53:05 (+19,-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,-3,-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,-95)
>>741
コンパイル済みのシェーダは中間言語だよ
.NETのCILと同じように、実行時にGPUのネイティブコードに変換される
Silverlightの場合はCPUで動くネイティブコードに変換されてると思われる
745 : デフォルトの名無 - 2011/02/17(木) 15:38:20 (+126,+27,-25)
mvvm実装疲れる
奥が深い分野だよね
746 : デフォルトの名無 - 2011/02/17(木) 19:12:23 (+111,+29,-2)
>>743
ありがとうございます
うまくいった・・・

>>745
まー慣れだよね
747 : デフォルトの名無 - 2011/02/17(木) 20:59:02 (+63,-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 + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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