c# - Listview in tab extends past window border before creating horizontal scrollbar -


i made simple program demonstrate happening.

usercontrol1 contains listview simple information. gridviewcolumns' width in list view set auto allow re-sizing.

usercontrol2 tabcontrol tab containing usercontrol1.

the mainwindow has grid left side usercontrol1, , right side usercontrol2.

i seeing proper behavior on left side of main window if re-size publisher column past right hand border horizontal scroll bar appears.

on right side, if same operation tabcontrol seems extend past right side of window quite ways before horizontal scroll bar appears.

can please explain why happening? expected usercontrol1 operate in same manner in tab did in main grid. why extending past window border?

code

mainwindow.xaml

<window x:class="wpfapplication1.mainwindow"         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"         xmlns:controls="clr-namespace:wpfapplication1"         title="mainwindow" height="350" width="800">     <grid>         <grid.columndefinitions>             <columndefinition width="2*" minwidth="300"/>             <columndefinition width="auto"/>             <columndefinition width="6*" minwidth="300"/>         </grid.columndefinitions>         <controls:usercontrol1 x:name="localpanel" margin="2" horizontalcontentalignment="stretch" grid.column="0"/>         <gridsplitter grid.column="1" grid.row="3" width="2" horizontalalignment="stretch" resizedirection="columns"/>         <controls:usercontrol2 x:name="tabpanel" margin="2" grid.column="2"/>     </grid> </window> 

usercontrol1.xaml

<usercontrol x:class="wpfapplication1.usercontrol1"                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"                 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"                  xmlns:d="http://schemas.microsoft.com/expression/blend/2008"                 datacontext="{binding relativesource={relativesource self}}"                 mc:ignorable="d"                  d:designheight="300" d:designwidth="300">     <grid>         <grid.rowdefinitions>             <rowdefinition height="30" />             <rowdefinition height="2" />             <rowdefinition height="*" />         </grid.rowdefinitions>         <listview grid.row="2" itemssource="{binding gamecollection}">             <listview.view>                 <gridview>                     <gridviewcolumn width="auto" header="game name"                  displaymemberbinding="{binding gamename}"  />                     <gridviewcolumn width="auto" header="creator"                   displaymemberbinding="{binding creator}" />                     <gridviewcolumn width="auto" header="publisher"                  displaymemberbinding="{binding publisher}" />                 </gridview>             </listview.view>         </listview>     </grid> </usercontrol> 

usercontrol1.xaml.cs

using system; using system.collections.generic; using system.linq; using system.text; using system.threading.tasks; using system.windows; using system.windows.controls; using system.windows.data; using system.windows.documents; using system.windows.input; using system.windows.media; using system.windows.media.imaging; using system.windows.navigation; using system.windows.shapes; using system.collections.objectmodel;  namespace wpfapplication1 {     /// <summary>     /// interaction logic usercontrol1.xaml     /// </summary>     public partial class usercontrol1 : usercontrol     {         observablecollection<gamedata> _gamecollection =         new observablecollection<gamedata>();          public usercontrol1()         {             _gamecollection.add(new gamedata             {                 gamename = "world of warcraft",                 creator = "blizzard",                 publisher = "blizzard"             });             _gamecollection.add(new gamedata             {                 gamename = "halo",                 creator = "bungie",                 publisher = "microsoft"             });             _gamecollection.add(new gamedata             {                 gamename = "gears of war",                 creator = "epic",                 publisher = "microsoft"             });              initializecomponent();         }          public observablecollection<gamedata> gamecollection         { { return _gamecollection; } }          private void listview_sizechanged(object sender, sizechangedeventargs e)         {             listview _listview = sender listview;             gridview _gridview = _listview.view gridview;             var _actualwidth = _listview.actualwidth - systemparameters.verticalscrollbarwidth;             (int32 = 1; < _gridview.columns.count; i++)             {                 _actualwidth = _actualwidth - _gridview.columns[i].actualwidth;             }             _gridview.columns[0].width = _actualwidth;         }          public class gamedata         {             public string gamename { get; set; }             public string creator { get; set; }             public string publisher { get; set; }         }     } } 

usercontrol2.xaml

<usercontrol x:class="wpfapplication1.usercontrol2"              xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"              xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"               xmlns:d="http://schemas.microsoft.com/expression/blend/2008"              xmlns:controls="clr-namespace:wpfapplication1"              mc:ignorable="d"               d:designheight="300" d:designwidth="300">     <grid>         <tabcontrol>             <tabitem header="profile setup">                 <grid>                     <controls:usercontrol1/>                 </grid>             </tabitem>         </tabcontrol>     </grid> </usercontrol> 


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -