質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

XAML

XAML(Extensible Application Markup Language)はWPF、Silverlight、Windows PhoneそしてWindows Store appsでユーザーインターフェースを定義するために使われるXML言語です。

Q&A

解決済

3回答

726閲覧

カラムの右端にwidthが0のカラムが掴めない。ドラッグできない。

wadamaruz01

総合スコア22

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

XAML

XAML(Extensible Application Markup Language)はWPF、Silverlight、Windows PhoneそしてWindows Store appsでユーザーインターフェースを定義するために使われるXML言語です。

0グッド

0クリップ

投稿2021/07/07 08:08

WPFのDataGridですが、カラムのWidthを0にすると右端にカラムwidth0のカラムが掴めないです。Widthを0でも掴めるようにすることは、できないでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

カラムのWidthを0にすると右端にカラムwidth0のカラムが掴めないです。

日本語がおかしいですが、「右端カラムのWidthを0にすると掴めない」ということでいいんでしょうか?

まあ右端じゃなくても掴めないんですが、右端以外は隣のカラムの移動?で結果的には表示されるようにはなりますね。

比較的簡単にできそうな方法として、右端じゃなくする方法を考えました。
右端にダミーの最大幅カラムを置き、リサイズ以外の操作を受け付けないような設定にします。

注)行選択のハイライトが貫通します(面倒なのでやりませんが、行とセルのスタイルをいじれば解消は可能と思われます)

xml

1<Window 2 x:Class="Questions348202.MainWindow" 3 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 4 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 5 xmlns:theme="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero2" 6 Width="600" 7 Height="450"> 8 <Window.Resources> 9 <Style x:Key="ColumnHeaderGripperStyle" TargetType="{x:Type Thumb}"> 10 <Setter Property="Width" Value="8" /> 11 <Setter Property="Background" Value="Transparent" /> 12 <Setter Property="Cursor" Value="SizeWE" /> 13 <Setter Property="Template"> 14 <Setter.Value> 15 <ControlTemplate TargetType="{x:Type Thumb}"> 16 <Border Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}" /> 17 </ControlTemplate> 18 </Setter.Value> 19 </Setter> 20 </Style> 21 <Style x:Key="DataGridColumnHeaderStyle1" TargetType="{x:Type DataGridColumnHeader}"> 22 <Setter Property="VerticalContentAlignment" Value="Center" /> 23 <Setter Property="Template"> 24 <Setter.Value> 25 <ControlTemplate TargetType="{x:Type DataGridColumnHeader}"> 26 <Grid> 27 <theme:DataGridHeaderBorder 28 Padding="{TemplateBinding Padding}" 29 Background="{TemplateBinding Background}" 30 BorderBrush="{TemplateBinding BorderBrush}" 31 BorderThickness="{TemplateBinding BorderThickness}" 32 IsClickable="False" 33 IsHovered="False" 34 IsPressed="False" 35 SeparatorBrush="{TemplateBinding SeparatorBrush}" 36 SeparatorVisibility="{TemplateBinding SeparatorVisibility}" 37 SortDirection="{TemplateBinding SortDirection}"> 38 <ContentPresenter 39 HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 40 VerticalAlignment="{TemplateBinding VerticalContentAlignment}" 41 RecognizesAccessKey="True" 42 SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /> 43 </theme:DataGridHeaderBorder> 44 <Thumb 45 x:Name="PART_LeftHeaderGripper" 46 HorizontalAlignment="Left" 47 Style="{StaticResource ColumnHeaderGripperStyle}" /> 48 <Thumb 49 x:Name="PART_RightHeaderGripper" 50 HorizontalAlignment="Right" 51 Style="{StaticResource ColumnHeaderGripperStyle}" /> 52 </Grid> 53 </ControlTemplate> 54 </Setter.Value> 55 </Setter> 56 </Style> 57 </Window.Resources> 58 <Grid> 59 <Grid.RowDefinitions> 60 <RowDefinition /> 61 <RowDefinition /> 62 </Grid.RowDefinitions> 63 64 <DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Items}"> 65 <DataGrid.Columns> 66 <DataGridTextColumn Binding="{Binding Column1}" Header="Column1" /> 67 <DataGridTextColumn 68 Width="0" 69 MinWidth="0" 70 Binding="{Binding Column2}" 71 Header="Column2" /> 72 <DataGridTextColumn Binding="{Binding Column3}" Header="Column3" /> 73 <DataGridTextColumn 74 Width="0" 75 MinWidth="0" 76 Binding="{Binding Column4}" 77 Header="Column4" /> 78 </DataGrid.Columns> 79 </DataGrid> 80 81 <DataGrid 82 Grid.Row="1" 83 AutoGenerateColumns="False" 84 ItemsSource="{Binding Items}"> 85 <DataGrid.Columns> 86 <DataGridTextColumn Binding="{Binding Column1}" Header="Column1" /> 87 <DataGridTextColumn 88 Width="0" 89 MinWidth="0" 90 Binding="{Binding Column2}" 91 Header="Column2" /> 92 <DataGridTextColumn Binding="{Binding Column3}" Header="Column3" /> 93 <DataGridTextColumn 94 Width="0" 95 MinWidth="0" 96 Binding="{Binding Column4}" 97 Header="Column4" /> 98 <DataGridTextColumn 99 Width="*" 100 CanUserReorder="False" 101 CanUserSort="False" 102 HeaderStyle="{StaticResource DataGridColumnHeaderStyle1}" 103 IsReadOnly="True" /> 104 </DataGrid.Columns> 105 </DataGrid> 106 </Grid> 107</Window>

cs

1using System.Collections.Generic; 2using System.Linq; 3using System.Windows; 4 5namespace Questions348202 6{ 7 public class Item 8 { 9 public string Column1 { get; } 10 public string Column2 { get; } 11 public string Column3 { get; } 12 public string Column4 { get; } 13 14 public Item(int x) 15 { 16 Column1 = $"Column1-{x}"; 17 Column2 = $"Column2-{x}"; 18 Column3 = $"Column3-{x}"; 19 Column4 = $"Column4-{x}"; 20 } 21 } 22 23 public partial class MainWindow : Window 24 { 25 public List<Item> Items { get; } = Enumerable.Range(1, 10).Select(x => new Item(x)).ToList(); 26 public MainWindow() 27 { 28 InitializeComponent(); 29 DataContext = this; 30 } 31 } 32}

アプリ画像


ほかの質問ですが「追記・修正依頼」にも答えず、放置状態なのはなぜなんでしょうか?
スコアもマイナスになっていますし、そのうち相手にされなくなりますよ。

投稿2021/07/13 11:56

編集2023/07/28 13:47
TN8001

総合スコア9862

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

0にしなければいいだけなんでは

投稿2021/07/07 08:11

y_waiwai

総合スコア88042

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

wadamaruz01

2021/07/07 22:48

最初は0にどうしてもしたいです
y_waiwai

2021/07/07 23:48

その掴むとき、に0であれば+1すれば
wadamaruz01

2021/07/08 00:05

なにかイベントを発生させるということでしょうか
y_waiwai

2021/07/08 00:25

それを考えてみましょう
wadamaruz01

2021/07/13 10:15

大変申し訳ないですが、3日間考えて進展がありません。なにかヒントをいただけないでしょうか?
guest

0

最初は0にどうしてもしたいです

投稿2021/07/07 09:45

wadamaruz01

総合スコア22

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問