繁体   English   中英

为什么颜色绑定不适用于 WPF 中 DataGrid 中的 HorizontalGridLinesBrush

[英]Why Color Binding doesn't work for HorizontalGridLinesBrush in DataGrid in WPF

我正在使用 C# WPF 和MaterialDesign主题,我将DataGridVerticalGridLinesBrush属性的背景绑定到Button的背景: 在此处输入图像描述

注意↑:当我像这样使用绑定时这有效,当我想绑定不透明度时不起作用

.

我需要的是: Color Binding 也可以工作,但我想将VerticalGridLinesBrushOpacity属性绑定到该按钮的Opacity属性在此处输入图像描述

问题

所以我在XAML中尝试了这个:

         <DataGrid.HorizontalGridLinesBrush>
            <SolidColorBrush Color="Red" Opacity="0.5"/>
        </DataGrid.HorizontalGridLinesBrush>

它运作良好: 在此处输入图像描述

但是当我尝试使用 Binding 时它不起作用:

        <DataGrid.HorizontalGridLinesBrush>
            <SolidColorBrush Color="{Binding ElementName=GENERAL_RANG,Path=Background}" Opacity="{Binding ElementName=GENERAL_RANG,Path=Opacity}"/>
        </DataGrid.HorizontalGridLinesBrush>

在此处输入图像描述

全XAML:

         <DataGrid x:Name="tASKSDataGrid" 
              EnableRowVirtualization="True"
              VirtualizingPanel.IsVirtualizing="True"
              VirtualizingPanel.VirtualizationMode="Recycling"
              ScrollViewer.CanContentScroll="False"
              SelectionMode="Single"
                           
              FlowDirection="RightToLeft" AutoGenerateColumns="False"  Margin="26,66,230,88" CanUserDeleteRows="False" BorderThickness="1" >
        
        <!--<DataGrid.HorizontalGridLinesBrush>
            <SolidColorBrush Color="Red" Opacity="0.1"/>
        </DataGrid.HorizontalGridLinesBrush>-->
        
        <!--↓-->

        <DataGrid.HorizontalGridLinesBrush>
            <SolidColorBrush Color="{Binding ElementName=MY_BUTTON,Path=Background}" Opacity="{Binding ElementName=GENERAL_RANG,Path=Opacity}"/>
        </DataGrid.HorizontalGridLinesBrush>


        <DataGrid.Columns>
                 <DataGridTextColumn x:Name="IDNUM" Binding="{Binding IDNUM, UpdateSourceTrigger=LostFocus}"  Header="Number" IsReadOnly="True"  MinWidth="50" Width="auto" />
            <DataGridTextColumn x:Name="gRColumn" Binding="{Binding GR, UpdateSourceTrigger=LostFocus}" Visibility="Visible" Header="Personel"  Width="auto" />

          
        </DataGrid.Columns>
    </DataGrid>
    
    <Button x:Name="MY_BUTTON" Visibility="Collapsed" Margin="95,56,0,0"  Width="1"/>

我什至删除了 Opacity Binding,但它仍然不起作用!

我应该怎么办?

Control 的Background属性的类型是Brush Brush有很多种, SolidColorBrush就是其中之一。 如果您确定Background的当前值为 SolidColorBrush,则可以在绑定中引用其Color属性。

<SolidColorBrush Color="{Binding ElementName=MY_BUTTON,Path=Background.Color}" Opacity="{Binding ElementName=GENERAL_RANG,Path=Opacity}"/>

但是,请记住, Background的值不一定具有Color属性,并且此绑定将无法正常工作,具体取决于其类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM