綠色圓圈中的元素名稱是什麼? Whta是與點擊此元素相對應的事件? 什麼是綠色圓圈中物品的名稱
回答
在我發現的至少一個示例中,單擊拐角處的灰色三角形將導致選擇所有行。
但據我所知,這不是該控件的內置功能。它是自定義模板的一部分。如果你下載的樣本 http://www.dotnetspark.com/kb/2941-styling-wpf-datagrid.aspx
,以及搜索資源/ DataGridCustomization.xaml文件「全選」,你會發現,包含此功能的模板的一部分:
看到這個例子。
我稱之爲'全選'按鈕。但是,它沒有正式名稱。它也沒有任何暴露的樣式屬性。對於一個簡單的方法,通過附加的屬性設置樣式,請參閱以下內容:
科林·E.
+1鏈接,非常有幫助。我做了幾乎完全一樣的事情,在這篇文章中提出的風格這個該死的按鈕,因爲我當時沒有發現任何有用的東西。這真的很煩人,MS沒有打擾它的命名...... – David 2010-12-21 10:49:11
正如其他人所指出的,它的「全選」按鈕。如果SelectionMode設置爲Extended,單擊它將選擇DataGrid中的所有內容。
「全選」按鈕是DataGrid模板的一部分。或者實際上,它是ScrollViewer模板的一部分,它是DataGrid模板的一部分,所以它嵌套得非常深。 ControlTemplate看起來像這樣。從這裏你可以做你想做與全選按鈕什麼,禁用它,更改背景等
<Style TargetType="{x:Type DataGrid}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGrid}">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="True">
<ScrollViewer x:Name="DG_ScrollViewer" Focusable="false">
<ScrollViewer.Template>
<ControlTemplate TargetType="{x:Type ScrollViewer}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!-- Here it is -->
<Button Command="{x:Static DataGrid.SelectAllCommand}" Focusable="false" Style="{DynamicResource {ComponentResourceKey ResourceId=DataGridSelectAllButtonStyle, TypeInTargetAssembly={x:Type DataGrid}}}" Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.All}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" Width="{Binding CellsPanelHorizontalOffset, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>
<DataGridColumnHeadersPresenter x:Name="PART_ColumnHeadersPresenter" Grid.Column="1" Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.Column}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>
<ScrollContentPresenter x:Name="PART_ScrollContentPresenter" CanContentScroll="{TemplateBinding CanContentScroll}" Grid.ColumnSpan="2" Grid.Row="1"/>
<ScrollBar x:Name="PART_VerticalScrollBar" Grid.Column="2" Maximum="{TemplateBinding ScrollableHeight}" Orientation="Vertical" Grid.Row="1" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportHeight}"/>
<Grid Grid.Column="1" Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="{Binding NonFrozenColumnsViewportHorizontalOffset, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<ScrollBar x:Name="PART_HorizontalScrollBar" Grid.Column="1" Maximum="{TemplateBinding ScrollableWidth}" Orientation="Horizontal" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportWidth}"/>
</Grid>
</Grid>
</ControlTemplate>
</ScrollViewer.Template>
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</ScrollViewer>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
如果要禁用全選按鈕,你也可以這樣做:
//Disable select all button
datagrid.CommandBindings.Add(new CommandBinding(DataGrid.SelectAllCommand, delegate { }, (s, a) => { if (a.OriginalSource is Button) ((Button)a.OriginalSource).IsEnabled = false; }));
作爲解決方法。 這也可以用來連接其他的東西。
「問題」與重新模板是,你必須把所有的主題進去......繁瑣的:)
+1!這是一個非常酷的'技巧'!會記得那一個 – 2010-12-21 16:06:44
- 1. 如何讓綠色圓圈塗抹?
- 2. 什麼是綠色線程?
- 3. 什麼是紅色/綠色測試?
- 4. 蟒蛇 - 試圖找到最大的綠色圓圈的圖像
- 5. 在這張照片的提示前,'a'的綠色圓圈的含義是什麼?
- 6. 畫布上的舊圓圈顏色重新着色,爲什麼?
- 7. Web顏色#ccc的名稱是什麼?
- 8. 這個圓圈到圓圈的碰撞有什麼問題?
- 9. 爲什麼Java中的用戶級線程稱爲「綠色」?
- 10. 圓圈的隨機顏色
- 11. 爲什麼畫布圓圈看起來不像一個圓圈?
- 12. 更改形狀鼠標在Swing應用程序中形成綠色圓圈?
- 13. 爲什麼顏色透明試圖繪製的drawRect一個彩色圓圈是什麼時候?
- 14. Android Studio:「運行」按鈕中的綠色圓點代表什麼意思?
- 15. 透明圓圈黑色
- 16. 如何白色圓圈
- 17. 畫一個彩色圓圈
- 18. PhpStorm顯示紅色圓圈
- 19. 隨機彩色圓圈
- 20. 橢圓內部的顏色是什麼?
- 21. 爲什麼我的犀牛書SVG時鐘副本是黑色圓圈?
- 22. Gradle旁邊的這個藍色圓圈是什麼?以及如何禁用此?
- 23. 圓圈上物體的均勻分佈
- 24. 選擇圓圈內的物體
- 25. ExtendScript Illustrator放置的物品名稱
- 26. pygame爲什麼不畫圓圈?
- 27. 去除中央白色圓圈?
- 28. 如何從圓圈中去除黑色?
- 29. 在圓圈中間改變顏色
- 30. 物理傾斜你的iphone的方法名稱是什麼?
是吧'ColumnHeader'? – GolezTrol 2010-12-21 06:00:27
它是一個白色的矩形? – NVM 2010-12-21 08:42:39