一、項目背景: 最近,做項目,因為是金融項目,客戶登錄交易的時候,有一個提示框,就是告知客戶要“入市需謹慎”等等,想必大家都遇到這樣的場景,當然,這種提示是沒人會看的,不過作為交易所,這樣的提示又必不可少的。 其實只有一個要求: 必須客戶讀完“確定”按鈕和CheckBox才會生效 客戶只要把滾動條拉 ...
一、項目背景:
最近,做項目,因為是金融項目,客戶登錄交易的時候,有一個提示框,就是告知客戶要“入市需謹慎”等等,想必大家都遇到這樣的場景,當然,這種提示是沒人會看的,不過作為交易所,這樣的提示又必不可少的。
其實只有一個要求:
必須客戶讀完“確定”按鈕和CheckBox才會生效----客戶只要把滾動條拉倒底部,我們就認為他已經讀完了
二、項目講解
1.前端代碼
前端代碼,沒有什麼好解釋的,很簡單,就是一個RichTextBox
<RichTextBox Grid.Row="0" Grid.ColumnSpan="2" x:Name="rtxtRiskContent" HorizontalAlignment="Left" AllowDrop="True" IsReadOnly="True" VerticalAlignment="Top" > <FlowDocument x:Name="fdRiskContent" > <Paragraph TextBlock.FontSize="20" TextAlignment="Center" TextBlock.FontWeight="Bold"> 風 險 提 示 書 </Paragraph> <Paragraph TextBlock.FontSize="14"> <TextBlock Padding="20 0,0,0" TextWrapping="Wrap" Text="都普特商品電子交易中心有限公司(以下簡稱"交易中心")上市商品的"/> 交易存在較大的風險,為控制交易客戶(包括但不限於企業交易客戶、個人交易客戶)的風險,維護交易客戶的合法權益,交易中心特作以下風險提示: <LineBreak/> <LineBreak/> 一、參與交易中心上市品種的交易對交易風險判斷、風險承受、風險控制有較高要求;不具備相應風險判斷、風險承受和風險控制能力的交易客戶,謹慎入市。 <LineBreak/> <LineBreak/> 二、因交易有較高風險,下列資金不適合入市交易: 用於治療疾病、養老、購房、繳納學費等生活必須支出的資金;貸款、借款及受他人委托管理的非自有資金; 交易中心建議交易客戶入市交易的資金總量不應超過自有存量資金的30%。 <LineBreak/> <LineBreak/> 三、交易客戶應當妥善保管自有交易賬號的交易密碼、資金密碼及其他賬戶密碼,不應委托任何機構或個人進行交易和資金管理。 <LineBreak/> <LineBreak/> 四、交易客戶應認真學習瞭解現貨交易市場的規則和行情,根據個人投資經驗、投資目標、財務狀況自主做出交易選擇,不應輕信任何機構和個人做出的收益承諾、行情分析和交易操作建議。 <LineBreak/> <LineBreak/> 五、上述風險提示為交易開戶前必讀之內容,個人交易客戶開戶成功視為已完全理解交易中心風險提示的內容,並承諾遵守。個人交易客戶因違反上述承諾導致虧損和其他交易損失的,交易中心不承擔任何責任。 <LineBreak/> </Paragraph> </FlowDocument> </RichTextBox> <CheckBox x:Name="chkRiskTip" Grid.Row="2" Grid.ColumnSpan="2" IsEnabled="False" Content="本人已仔細閱讀完全理解風險提示的所有內容,全面瞭解交易風險,並承諾按風險提示書 控制交易風險,因違反風險提示書的建議進行開戶交易導致損失的,一切損失本人自願承擔。" /> <Button x:Name="btnAgreen" Grid.Row="4" Grid.Column="0" Width="100" Content="同 意" IsEnabled="False" ></Button> <Button x:Name="btnNoAgreen" Grid.Row="4" Grid.Column="1" Width="100" Content="不同意" ></Button> <Label Margin="0,0,100,0" HorizontalAlignment="Right" Grid.Row="6" Grid.ColumnSpan="2" Foreground="Red" Content="提示:完整閱讀風險提示書後才可操作按鈕" />
2.後臺實現
我們主要要實現RichTextBox的事件,我們把事件放在資源文件里:
<Grid.Resources> <Style TargetType="{x:Type RichTextBox}"> <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto" /> <EventSetter Event="ScrollViewer.ScrollChanged" Handler="RichTextBox_ScrollChanged"/> </Style> </Grid.Resources>
3.實現事件
private void RichTextBox_ScrollChanged(object sender, ScrollChangedEventArgs e) { try { ScrollViewer sv = e.OriginalSource as ScrollViewer; if (sv != null && e.VerticalChange != 0) { if (sv.VerticalOffset == sv.ExtentHeight - sv.ViewportHeight)//到底 { this.chkRiskTip.IsEnabled = true; } } } catch { } }
三、結果截圖
很簡單,希望有對需要的有幫助。