안녕하세요 목록 상자가 있고 목록 상자를 스크롤하려면 외부 단추를 싶습니다. 나는 어떻게 이것을 달성 할 수 있는가? 도움과 예제에 감사드립니다.WPF C# 목록 상자 외부 스크롤 단추
답변
은 버튼 클릭에 대한 처리기를 추가
private void buttonUp_Click(object sender, RoutedEventArgs e) {
if (listBox1.SelectedIndex > 0)
listBox1.SelectedIndex--;
listBox1.ScrollIntoView(listBox1.SelectedItem);
}
private void buttonDown_Click(object sender, RoutedEventArgs e) {
if (listBox1.SelectedIndex < listBox1.Items.Count - 1)
listBox1.SelectedIndex++;
listBox1.ScrollIntoView(listBox1.SelectedItem);
}
XAML
<Window x:Class="WpfApplication36.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="479" Width="385">
<Grid Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<ListBox Name="lstProducts"
DisplayMemberPath="ModelName"
IsSynchronizedWithCurrentItem="True"
ScrollViewer.VerticalScrollBarVisibility="Hidden">
</ListBox>
<Border Grid.Row="1"
Padding="5"
Margin="0,5,0,5"
Background="LightSteelBlue">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Margin="7">Model Number:</TextBlock>
<TextBox Margin="5"
Grid.Column="1"
Text="{Binding Path=ModelNumber}"></TextBox>
<TextBlock Margin="7"
Grid.Row="1">Model Name:</TextBlock>
<TextBox Margin="5"
Grid.Row="1"
Grid.Column="1"
Text="{Binding Path=ModelName}"></TextBox>
<TextBlock Margin="7"
Grid.Row="2">Unit Cost:</TextBlock>
<TextBox Margin="5"
Grid.Row="2"
Grid.Column="1"
Text="{Binding Path=UnitCost}"></TextBox>
<TextBlock Margin="7,7,7,0"
Grid.Row="3">Description:</TextBlock>
<TextBox Margin="7"
Grid.Row="4"
Grid.Column="0"
Grid.ColumnSpan="2"
TextWrapping="Wrap"
VerticalScrollBarVisibility="Visible"
Text="{Binding Path=Description}"></TextBox>
</Grid>
</Border>
<Grid Grid.Row="2">
<StackPanel Orientation="Horizontal">
<Button Name="cmdPrev"
Click="cmdPrev_Click"><</Button>
<TextBlock Margin="5,0,5,0"
Name="lblPosition"
VerticalAlignment="Center"></TextBlock>
<Button Name="cmdNext"
Click="cmdNext_Click">></Button>
</StackPanel>
</Grid>
</Grid>
코드
namespace WpfApplication36{
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : Window
{
private ICollection<Product> products;
private ListCollectionView view;
private void cmdNext_Click(object sender, RoutedEventArgs e)
{
view.MoveCurrentToNext();
}
private void cmdPrev_Click(object sender, RoutedEventArgs e)
{
view.MoveCurrentToPrevious();
}
private void lstProducts_SelectionChanged(object sender, RoutedEventArgs e)
{
// view.MoveCurrentTo(lstProducts.SelectedItem);
}
private void view_CurrentChanged(object sender, EventArgs e)
{
lblPosition.Text = "Record " + (view.CurrentPosition + 1).ToString() +
" of " + view.Count.ToString();
cmdPrev.IsEnabled = view.CurrentPosition > 0;
cmdNext.IsEnabled = view.CurrentPosition < view.Count - 1;
}
public Window1()
{
InitializeComponent();
products = AddProduct() ;
this.DataContext = products;
view = (ListCollectionView)CollectionViewSource.GetDefaultView(this.DataContext);
view.CurrentChanged += new EventHandler(view_CurrentChanged);
lstProducts.ItemsSource = products;
}
private Collection<Product> AddProduct()
{
Collection<Product> test = new Collection<Product>();
Product prod=null;
prod=new Product();
prod.ModelName ="BMW";
prod.ModelNumber ="Q234";
prod.Description="BMWWWWWWWWWWWW";
prod.UnitCost="$3333333";
test.Add(prod);
prod = new Product();
prod.ModelName = "BMW11";
prod.ModelNumber = "Q234111";
prod.Description = "BMWWbbb";
prod.UnitCost = "$3333333";
test.Add(prod);
prod = new Product();
prod.ModelName = "BM3W";
prod.ModelNumber = "Q233334";
prod.Description = "BMWb33bbb";
prod.UnitCost = "$3333333";
test.Add(prod);
return test;
}
}
public class Product
{
private string modelNumber;
public string ModelNumber
{
get {return modelNumber; }
set{ modelNumber=value; }
}
private string modelName;
public string ModelName
{
get {return modelName; }
set{ modelName=value ;}
}
private string unitCost;
public string UnitCost
{
get { return unitCost; }
set { unitCost = value; }
}
private string description;
public string Description
{
get { return description; }
set { description = value; }
}
}
}
Heres my Code guys!
<Button Template="{StaticResource EmptyButton}" Name="btnArrowUp" Click="btnArrowUp_Click">
<Canvas x:Name="ArrowUp" HorizontalAlignment="Left" VerticalAlignment="Top" Width="101" Height="72" ClipToBounds="True">
<Image x:Name="up" Width="100" Height="50" Source="pil 3_Images\Image.png" Canvas.Left="0" Canvas.Top="10.543"/>
</Canvas>
</Button>
일반적으로 이미지를 단추에 넣으려면 캔버스가 필요하지 않습니다. 결국 작동합니까? – majocha
죄송 합니다만 아래로 스크롤하지 않습니다. 다른 방법이 있습니까? – Tan
코드에서 실수를했습니다. lbZones.ScrollIntoView (lbZones.SelectedIndex); 이어야합니다 lbZones.ScrollIntoView (lbZones.SelectedItem); XAML의 나머지 부분은 단추뿐 아니라 게시하십시오. 더 많은 문제가있을 수 있다는 느낌이 들었어. 또한 사용자 정의 스타일을 사용하지 않고 간단한 샘플을 작성하여 작동시키고 작동시킬 수 있습니다. – majocha
- 1. WPF 목록 상자 스크롤 다운
- 2. WPF - 확장기에서 스크롤 목록 상자
- 3. WPF 목록 상자 가로 스크롤
- 4. WPF 목록 상자 스크롤 후 오른쪽 클릭시 목록 상자 항목
- 5. 목록 상자 및 스크롤 뷰어 wpf
- 6. 목록 상자 스크롤
- 7. 목록 상자 항목 아래의 WPF 사용자 지정 단추
- 8. 외부 배경 이미지가있는 WPF 단추
- 9. C# 목록 상자 맨 위로 스크롤
- 10. WPF 목록 상자 선택 문제
- 11. WPF 스크롤 단추 (기능 보류 중)
- 12. WPF 목록 상자 질문
- 13. WPF 부동 목록 상자
- 14. WPF : 목록 상자 유지하기
- 15. WPF : 목록 상자 및 동시성
- 16. VB.net 목록 상자 자동 스크롤
- 17. WPF - 목록 상자 - Multibind 하우투
- 18. WPF : 창로드시 목록 상자 채우기
- 19. wpf 텍스트 상자 커서 스크롤
- 20. WPF 스크롤 할 텍스트 상자
- 21. C# 텍스트 상자 목록 상자
- 22. WPF 목록 상자 - 빈 목록 표시 메시지
- 23. WPF 목록 상자 선택 색상
- 24. 목록 상자 ScrollIntoView 문제 wpf
- 25. WPF 사용자 지정 목록 상자
- 26. WPF - 목록 상자 항목 숨기기
- 27. wpf DataGrid 대 목록 상자
- 28. 편집 가능한 WPF 목록 상자
- 29. 목록 상자 항목의 WPF 애니메이션
- 30. 여러 열이있는 목록 상자 wpf
가 외부에 의해 무엇을 의미합니까 도움
그리고을 heres WPF에 대한 감사합니다? – dada686
왼쪽에는 목록 상자가 있습니다. 많은 수직 항목. 그 다음 오른쪽에 2 개의 버튼이 필요합니다. 하나의 아래쪽 버튼과 위로 버튼. 이 버튼을 클릭하면리스트 뷰가 위 아래로 스크롤됩니다. – Tan