Поместите элемент управления на Wpf Datagrid в определенном месте. - PullRequest
0 голосов
/ 26 декабря 2018

Я пытаюсь разместить кнопку, форму или любой элемент управления или UserControl на Datagrid в качестве наложения. Я хочу разместить его в определенном индексе строки и столбца.Например, я хочу разместить его в строке № 2, и она должна охватывать 2 столбца, столбцы № 3 и 4. Что-то вроде этого удара.

<Canvas Grid.Row="1" Name="CanvasContainer" Background="CadetBlue" AllowDrop="True" Drop="Canvas_Drop">
            <DataGrid Name="DataGrid" AllowDrop="True" 
                      Height="{Binding ActualHeight, ElementName=CanvasConstatainer}"
                      Width="{Binding ActualWidth, ElementName=CanvasContainer}">
            </DataGrid>
            <Button Visibility="Visible" Name="LayerBtn" Width="100" Height="30"
                    PreviewMouseLeftButtonUp="btn_PreviewMouseLeftButtonUp"
                    PreviewMouseMove="btn_PreviewMouseMove"
                    MouseMove="btn_MouseMove"
                    PreviewMouseLeftButtonDown="btn_PreviewMouseLeftButtonDown" Canvas.Left="111" Canvas.Top="69">
                    Layer
            </Button>    
 </Canvas>  

Я написал только этот код.видите, я использую кнопку в качестве наложения, но это может быть любой элемент управления или usercontrol.Я хочу сделать что-то, как показано ниже на рисунке.

enter image description here

1 Ответ

0 голосов
/ 26 декабря 2018

Я думаю, что это невозможно сделать.При использовании DataGrid вы должны определить, какой тип столбцов вы используете.DataGridTextBoxColumn обычно помещается по умолчанию при передаче данных через DataTAble, он учитывает весь текст.

Но вы можете определить другие типы столбцов, например столбец DataGridComboBox или DataGridCheckboxColumn, которые могут позволить вам выполнить хотя бы частично то, что вы хотелиделать там.

Тем не менее вы можете определить свой собственный столбец, который делает именно то, что вы хотите.Но это не так легко сделать.

...