開発者の視点、グリッドからキャンバスを見て - 長い文字列が自動的に「...」に変更することができるようにする方法
WPFの前に、Silverlightが出て来ていない、あなたはこの効果次の図を持っていると思います!?
デフォルトのコントロールはありません!したいですか?彼らは、刻まれたコントロールを所有する必要があります
ウェブ場合は、
それがさらに悪化するだろう!私はJSの束を書いた
CSS3のテキスト・楕円を使用することができます
(:を見て覚えて、感謝祭のエリック・リマインダをしかし、何のブラウザのサポートはありません注意してください)
今WPFで、Silverlightの最初のプロパティは、このように構築します
特に、電話でこのような小さな画面を必要とします
基本的には非常にシンプル!
限りTextBlock内の再選挙のプロパティとして、あなたは、プロパティTextTrimmingを見ることができます
そして、WordEllipsisを選択すれば完了です!
しかし、私は、もし誰かが私のような出会いを疑問に思います
このような状況のように?設定するには、明らかにTextTrimming!
しかし、また、なぜ単語や外部実行?
幅は自動に設定されていませんか?
Windowsの携帯電話がサポートすることなく、このプロパティではありませんか?
合わせは右に設定されていませんか?
いいえ、ありません!私はこれをチェックしています!しかし、MSDNが言うには、同じORZではありません
エリックとの最後の議論は、このプロパティは使用されていないについて尋ねました!?
エリックは、正常に変換するのは非常に簡単でした「...」
私の心のOS:それは本当にSengeが、これは文字の問題であると言うのですか?
その後、エリックは重要な言葉を言いました!「何の使用グリッドはありませんか」?
青色からグリッドキャンバス全体ボルトから変更後
すべてが正常です!!
----------------------------------------
なぜキャンバスとグリッド内のTextBlock TextTrimmingは、同じ効果を持っていませんか?
----------------------------------------
本当に私のために始めキャンバスとグリッドには違いはありません
(開発者の観点から懸念されます)
直到 TextTrimming 这个属性我才直惊觉到差异很大…
每次看在 MSDN、书籍在介绍 Canvas 、Grid 、StackPanel
都是在说对象是怎么排列的之类
面板名称 |
说明 |
---|---|
Canvas |
定义一个区域,您可以在这个区域内依据相对于 Canvas 区域的座标,明确放置子项目。 |
Grid |
定义由数据行和数据列组成的弹性方格区域。 |
StackPanel |
将子项目排列在可为水平或垂直方向的单一行中。 |
实际上真的没有什么感觉!好像跟开发人员没关系
反正画面出来长的一样,剩下的就随便啦!
查了很久总算有一个可以说服我的了!
MSDN 的 Silverlight 配置系统
http://msdn.microsoft.com/zh-tw/library/cc645025(v=vs.95).aspx#LayoutSystem_LayoutSystem
简单来说!
就是 Canvas 是用一种绝对位置当做座标!
即使画面放大、缩小、超出 Canvas 范围 内容 都不会受到任何影响!
而 Grid 则是会依画面变小而改变 Grid 内的控件
也不允许 内容超出 控件范围!
所以才会造成在 Canvas 中
即使设定了 TextTrimming 过长的字符串依然会跑到外面去的情况发生
以后大家就不会分不清楚到底要用那一个了
参考数据
Silverlight 配置系统
http://msdn.microsoft.com/zh-tw/library/cc645025(v=vs.95).aspx#LayoutSystem_LayoutSystem
Grid 类
http://msdn.microsoft.com/zh-tw/library/system.windows.controls.grid(v=vs.95).aspx
Canvas 类
http://msdn.microsoft.com/zh-tw/library/system.windows.controls.canvas(v=vs.95).aspx
オリジナル:ビッグボックス どのように長い文字列を自動的に変換することができます「…」 - 、開発者の視点から、キャンバスを見グリッド