0

ほとんどの場合、不透明マスクを使用した Rectangle があります。

ListView は ObservableCollection にバインドします。コレクションから最初のアイテムを削除したときだけ、リスト内のすべてのアイテムで OpacityMask が消えたように見えます。

ListView 内の他のすべてのコントロールは正しくバインドされるため、DataTemplate 内の何もバインドされていない 1 つのコントロールに問題があることに驚いています。

VSTOだからなのかわかりませんが、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 の最初のアイテムを削除した後 ObservableCollection の最初のアイテムを削除した後

4

1 に答える 1