4 개의 TabItem이있는 TabControl이 있습니다. 각 TabItem 안에는 GridView와 툴바가 있습니다. MahApps.Metro (Window 및 TabControl의 경우) 및 RadControls (GridView 및 Toolbar의 경우)를 사용합니다. MahApps.Metro TabControl을 AnimatedSingleRowTabControl과 함께 사용하므로 탭을 전환 할 때마다 애니메이션이 변경되는 탭이 있습니다.MahApps.Metro TabControl 채워진 GridView가있는 뒤틀림
GridView가 비어있는 경우 애니메이션이 부드럽지만 GridView에서 데이터로 채워지면 지연됩니다. 탭을 전환 할 때마다 항상 약 1-2 초 지연됩니다. 테이블의 최대 행 수가 최대 73 개입니다. 그래서로드하는 것이 너무 어렵다고 생각하지 않습니다.
GridView를 테이블이나 다른 이유로 바인딩하는 올바른 방법을 사용하지 않았기 때문에 이것이 아닌지 잘 모르겠습니다.
가의 GridView 빈 전환 탭을하자 슬라이드 애니메이션 후 채우기 :
나는 그래서 내 솔루션 중 하나, 애니메이션을 부드럽게합니다.
어떻게 든 애니메이션을 부드럽게 만듭니다 (바인딩 방식 변경).
, 나는 위의 옵션을 수행하는 방법을 모르는 : P 누구든지 나를 도울 수 있습니까? 다른 해결책을 환영합니다. 나는의 GridView 바인딩이 방법
<TabControl SelectionChanged="TabControl_SelectionChanged">
<TabItem Name="Tab_Collection"
Header="Collection"
Style="{StaticResource MetroTabItem}">
<StackPanel Margin="20,10">
<telerik:RadToolBar telerik:StyleManager.Theme="Metro"
Margin="0,0,0,5"
Width="338"
GripVisibility="Collapsed"
OverflowButtonVisibility="Collapsed"
HorizontalAlignment="Right">
<Button Name="Btn_CollectionAdd"
Width="80"
Height="25"
Content="Add"/>
<Button Name="Btn_CollectionEdit"
Width="80"
Height="25"
Content="Edit"/>
<Button Name="Btn_CollectionDelete"
Width="80"
Height="25"
Content="Delete"/>
<telerik:RadToolBarSeparator/>
<Button Name="Btn_CollectionSearch"
Width="80"
Height="25"
Content="Search"
Click="Btn_Search_Click"/>
</telerik:RadToolBar>
<telerik:RadGridView Name="Dgv_Collection" telerik:StyleManager.Theme="Metro"
Margin="0,0,0,10"
Height="505"
BorderBrush="#25A0DA"
BorderThickness="1"
SelectionUnit="FullRow"
AutoGenerateColumns="False"
CanUserInsertRows="False"
CanUserDeleteRows="False"
CanUserResizeRows="False"
CanUserFreezeColumns="False"
CanUserSortColumns="False"
CanUserResizeColumns="False"
CanUserReorderColumns="False"
ShowGroupPanel="False"
RowIndicatorVisibility="Collapsed"
EditTriggers="None">
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn Width="30"
Header="#"
IsFilterable="False"
DataMemberBinding="{Binding id}"/>
<telerik:GridViewDataColumn Width="*"
Header="Title"
IsFilterable="False"
DataMemberBinding="{Binding title}"/>
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</StackPanel>
</TabItem>
//I do the same for the rest 3 TabItems
</TabControl>
:
private void loadCollection()
{
String conn = connection_string;
String sql = null;
try
{
sql = "SELECT * FROM Tbl_Information";
SqlCeDataAdapter dataAdapter = new SqlCeDataAdapter(sql, conn);
SqlCeCommandBuilder commandBuilder = new SqlCeCommandBuilder(dataAdapter);
DataTable table = new DataTable();
dataAdapter.Fill(table);
Dgv_Collection.ItemsSource = table;
}
catch (SqlCeException ex)
{
MessageBox.Show(ex.Message);
}
}
//load the rest 3 table the same way
public MainPage()
{
InitializeComponent();
loadCollection();
//call the rest
}
참고 :
이
내 코드입니다 I : 내가 WPF :편집에 여전히 새로운 해요 TabItem에 대한 첫 번째 액세스가 지연되는 것만 알았습니다. TabItem을 클릭하고 다른 탭으로 전환하면 지연됩니다. 그러나 이전 탭으로 다시 전환하면 부드럽게 움직입니다.