に変換する次のコードを純粋なC#に変換しようとしていると困惑しています。このXAMLコードはCavanaghsのブログで、何かを丸くする方法についてです。コードが動作しますが、私はそれを必要に応じてC#に変換する必要があります。もしあなたがそれが偉大になるのを助けることができたら。ControlTemplate XAMLをC#
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType='{x:Type ListViewItem}'>
<Grid>
<Border CornerRadius="15" Name="mask" Background="White"/>
<StackPanel Background="Beige">
<StackPanel.OpacityMask>
<VisualBrush Visual="{Binding ElementName=mask}"/>
</StackPanel.OpacityMask>
<GridViewRowPresenter Content="{TemplateBinding Content}" Columns="{TemplateBinding GridView.ColumnCollection}"/>
<TextBlock Background="LightBlue" Text="{Binding News}" />
</StackPanel>
</Grid>
</ControlTemplate>
</Setter.Value>
これまでのところ私は、次のしているが、私はエラーを取得しています。
私の知る限り、私はFrameworkElementFactory(クラッシュ)とたVisualBrushを作るカント伝えることができますが、私は定期的な要素たVisualBrushとしてそれを宣言する場合、私はそのFrameworkElementFactory以来、ビジュアルなどで国境を通過するカントとしてFrameworkElementFactory border = new FrameworkElementFactory(typeof(Border));
border.SetValue(Border.BackgroundProperty, Brushes.White);
border.SetValue(Border.CornerRadiusProperty, new CornerRadius(8, 8, 8, 8));
border.SetValue(Border.NameProperty, "roundedMask");
。
私は迷子になってしまいました。何か助けていただければ幸いです。 ありがとうございました
XAML内で問題の要素に名前を指定し、コード内でその名前を参照して、必要な動的機能を提供することができます。コード内の要素全体を構築する必要はありません。 –
将来参照するために、XAMLはC#(またはVBプロジェクトのVB)に解析されます。コンパイルした後、.objフォルダ内で 'MyXamlFile.g.cs'を探します。これは解析されたコードを含んでいます。 – Tergiver
@Tergiverこれは正確ではありません(少なくともそれ以上はありません) - XAMLは.BAML(WPFで)とCodebehind C#/ VBなどを生成します。コードはクラス変数に名前付き参照を割り当てるためのコードです(codebehindはBAMLを補完する部分クラスです) –