1

私は UWP アプリを設計しており、x:Bindやなどの新機能を喜んで使用していますx:Phase

Grid私は単純なモデルを持っています(およびStackPanel省略されたなどのコンテナ):

<TextBlock Text="{x:Bind Title}" x:Phase="0" />
<TextBlock Text="{x:Bind Date}" x:Phase="1" />

<Ellipse Stretch="UniformToFill">
   <Ellipse.Fill>
       <ImageBrush ImageSource="{x:Bind Image}" />
   </Ellipse.Fill>
</Ellipse>

したがって、 for image を指定したいのですx:Phaseが、明らかな制約のx:PhaseためFrameworkElementにこれを行うことはできません。ImageBrushx:Phasex:BindEllipse

x:Phaseテキストで使用し、最初に画像をロードできるようにするのは奇妙です。これを解決するには?

UPD:ハックがあります!

x:Bind偽のモデル プロパティを使用して、重要でないプロパティをデフォルト値に設定します。数十行ではなく 1 行のコード行。

<Ellipse Stretch="UniformToFill" CanDrag="{x:Bind PlaceholderCanDrag}" x:Phase="2">
    <Ellipse.Fill>
        <ImageBrush ImageSource="{x:Bind Image}" />
    </Ellipse.Fill>
</Ellipse>
4

1 に答える 1

0

x:Phase は、フェージング プロセスを簡素化するために導入されました。つまり、自分でコードを記述する必要がなくなりました。

SO「たぶん」コードを使用してフェーズを再度実装することはできますか? 大変な作業であることはわかっていますが、Ellipse で機能する唯一のものになる可能性があります。

良い開始例はここにありますhttp://mcnextpost.com/2015/11/10/uwpxaml-compiled-binding-incremental-rendering-with-xphase/

GridView / ListViewContainerContentChangingイベントに接続し、そこからフェーズを進める必要があります。

于 2015-12-18T07:46:13.043 に答える