ほとんどの場合、不透明マスク付きの四角形があります。ObservableCollectionから最初のオブジェクトを削除した後にRectangle.OpacityMaskが消える
ListViewはObservableCollectionにバインドされます。コレクション内の最初のアイテムを削除するときだけ、OpacityMaskがリスト内のすべてのアイテムで消えているように見えます。
ListViewの他のすべてのコントロールが正しくバインドされているため、何かにバインドしないDataTemplateの1つのコントロールに問題があることに驚いています。
VisualTreeであるかどうかわかりませんが、VisualTreeを検査しようとすると、WPF InspectorとSnoopの両方がクラッシュします。
Visual Studioのライブビジュアルツリーには何も入力されません。再び私はこれをVSTOにしました。
私がビジュアルブラシをRadialGradientBrushに変更すると、それは完全に機能します。通常の動作
の
<ListView Grid.Row="0" Margin="10"
Name="lstVariables"
ItemContainerStyle="{StaticResource ContainerStyle}"
ItemsSource="{Binding VariablesList, Mode=OneWay}">
<ListView.ItemTemplate>
<DataTemplate>
<Grid Margin="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="180" />
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="100" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0"
Text="{Binding Name}"
Margin="5,0,0,0"
Height="23" />
<TextBox Grid.Column="1" Text="{Binding Value}"
Controls:TextBoxHelper.ClearTextButton="True"
Height="23"
Width="300" />
<Button Grid.Column="2"
Width="100" Height="100" >
<Rectangle Height="100" Width="100" Fill="Black" >
<Rectangle.OpacityMask>
<VisualBrush Stretch="Fill" Visual="{StaticResource appbar_delete}" />
</Rectangle.OpacityMask>
</Rectangle>
</Button>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
例のObservableCollectionの最初の項目を除去した後
私はここでしか推測できませんが、個々のオブジェクトの不透明マスクや元の不透明マスクを参照していますか? –
わかりません。私はOpacityMaskがバインディングプロセスによって生成された各Rectangleのプロパティだと思います。 "appbar_delete"は、MahAppsパッケージの一部としてResourceDictionaryで定義された単一のキャンバスです。 – slavs