テキストにProgressBarにコンポーネントのラインナップ
-
09-06-2019 - |
質問
こない-同じ系列のコンポーネントのラインナップcognoscenti、というのがあれば簡単に入れて文字のコンポーネントのラインナップProgressBar.私は、空の進捗バーに見え裸のままです。この画面で不動産を運ぶことができ、メッセージ 何 は、追加番号の表現。現在、コンポーネントのラインナップはすべて容器や拡張っゆっくりと包装私の周りを気にせずることができというものはないと思い"Text"または"コンテンツ"プロパティ、俺は思って追加のコンテナは私の進捗バーがあります。ある技術はあるが、より自然によって独自のサポート衝動ですか?何が最高の、最もコンポーネントのラインナップ-自然に追加テキストに進捗バー?
解決
の場合を必要として再利用可能な方法の追加テキストを作成できる新しいスタイル/ControlTemplateる追加TextBlockを表示します。できるハイジャックのTextSearch.テキスト属性のテキストに進捗バーがあります。
っていることを確認してください必要とする再利用可能な、簡単に言うとわれわれが進捗バーのグリッドを追加TextBlockのグリッド以来、コンポーネントのラインナップで構成元素と、この仕事がります。
いることができる、UserControlることを紹介ProgressBarとTextBlockとしての公共性ので、将来的にご検討されている作品をカスタムControlTemplate.
他のヒント
両方の事前の対応を新規作成 CustomControl
または Adorner
)またはその他の慣習が、また速や汚れは視覚的にわかん)そしてこのコードでの仕事:
<Grid Width="300" Height="50">
<ProgressBar Value="50" />
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">
My Text
</TextBlock>
</Grid>
だけのz-indexすることにより、前項に掲載されます。
また、いらない Kaxaml しかし、ごしていただくまでサポートしているので、広いで遊ぶ話サイトの最新トレンドだそうとしていることも。
することができます簡単な (がなければテルのすぐ近くは飲食面では貧弱なうことにしました。
を使用できる Style
この行はあなただけのオーバーレイ、 TextBlock
や ProgressBar
.
個人的にはこの割合の進展が待ってます。
で非常に簡単なったきっかけ 一つ
Binding
のみ そのTextBock.Text
のProgressBar.Value
.
それだけでコードをコピーします。
<Grid>
<ProgressBar Minimum="0"
Maximum="100"
Value="{Binding InsertBindingHere}"
Name="pbStatus" />
<TextBlock Text="{Binding ElementName=pbStatus, Path=Value, StringFormat={}{0:0}%}"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
</Grid>
ここではこのようになります:
チェック コンポーネントのラインナップチュートリアル にします。
き使用Adornerテキストが表示チェックします。
をクラスを継承するAdornerクラスです。オーバーライドのOnRenderを描画するメソッドは、文字ることができます。だいたいすることができ、依存関係性のためのカスタムAdornerが含まれるテキストを表示するかどうか.その例のリンクに述べたこの機能を追加Adornerを進捗バーのadorner。
右クリック ProgressBar
, し、[編集]をクリックします。テンプレート>編集コピーです。
このフィルター TextBlock
下図のように上の終了タグの Grid
の発生によるVS.
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="2"/>
<TextBlock Background="Transparent" Text="work in progress" Foreground="Black" TextAlignment="Center"/>
</Grid>
<ControlTemplate.Triggers>
ProgressBarテキストとの結合から2件 価値/最大値 ):
<Grid>
<ProgressBar Name="pbUsrLvl"
Minimum="1"
Maximum="99"
Value="59"
Margin="5"
Height="24" Foreground="#FF62FF7F"/>
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock.Text>
<MultiBinding StringFormat="{}UserLvl:{0}/{1}">
<Binding Path="Value" ElementName="pbUsrLvl" />
<Binding Path="Maximum" ElementName="pbUsrLvl" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</Grid>
Rezult:
同じもの と%の進捗 :
<Grid>
<ProgressBar Name="pbLifePassed"
Minimum="0"
Value="59"
Maximum="100"
Margin="5" Height="24" Foreground="#FF62FF7F"/>
<TextBlock Text="{Binding ElementName=pbLifePassed, Path=Value, StringFormat={}{0:0}%}"
HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>